下面提到了一个与面向Spring方面编程有关的错误。
2022-05-06 17:26:44 ERROR org.springframework.boot.SpringApplication.java Line 826: Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'projectingArgumentResolverBeanPostProcessor' defined in class path resource [org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
以前我使用applicationContext.xml文件。但是在我将@Configuration注释添加到CommonController类并删除了applicationContext.xml文件之后。我只是搜索一些解决方案并应用于我的代码,但仍然没有澄清我的问题。希望您的支持,并附上我的代码如下,谢谢。
Aspect.java
package com.intervest.medical.aggregator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Aspect {
private Logger logger = LoggerFactory.getLogger(this.getClass());
public void aspect() {
logger.info("FFFFFFFFFFFFF {} | request {} | registerParam {}", "RETURNVALUE", "request", "registerParam");
}
}
CommonController.java
package com.intervest.medical.aggregator.controller;
import com.healix.blackboxdirect.ArrayOfString;
import com.healix.blackboxdirect.DirectServiceSoap;
import com.intervest.medical.engine.domain.*;
import com.intervest.medical.engine.service.*;
import com.intervest.medical.engine.util.*;
import com.intervest.medical.engine.constants.RegisterError;
import com.intervest.medical.engine.constants.RegisterState;
import com.intervest.medical.engine.dto.ValidationDTO;
import com.intervest.medical.engine.dto.XmlResultDTO;
import com.intervest.medical.engine.enums.Stub;
import org.apache.commons.lang.StringUtils;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
@Controller
@Aspect
@Configuration
public class CommonController {
private static final Logger LOG = LoggerFactory.getLogger(CommonController.class);
@Autowired
ScreeningProxyService screeningProxyService;
@Autowired
MedicalDataKeeperService medicalDataKeeperService;
@Autowired
private MedicalUrlService medicalUrlService;
@Autowired
private MedicalConstantsService medicalConstantsService;
@Autowired
private MedicalConfigService medicalConfigService;
@ResponseBody
@Pointcut("within(com.intervest.medical.aggregator.Aspect.*)")
@Before("reScreenAndGetXmls(@RequestBody RegisterParam registerParam)")
@RequestMapping(value = "/medical/screeningData/register", method = RequestMethod.POST)
public RegisterResult doScreen(HttpServletRequest request, @RequestBody RegisterParam registerParam) {
ValidationDTO intiValidationDTO = screeningProxyService.initialValidation(registerParam, false);
if (!intiValidationDTO.isSuccess()) {
return new RegisterResult(null, intiValidationDTO.getErrMsg());
}
........................
}
Application.java
public static void main(String[] args) throws Exception {
SpringApplication springApplication = new SpringApplication(Application.class);
springApplication.setBannerMode(Banner.Mode.OFF);
Environment environment = springApplication.run(args).getEnvironment();
ApplicationContext applicationContext = SpringApplication.run(Application.class, args);
Aspect e = (Aspect) applicationContext.getBean("Aspect");
e.aspect();
}
发布于 2022-05-15 05:09:53
我解决了我的问题。我的方面课有个问题。我没有给那门课添加相关的注释。在将这些注释添加到方面类并从控制器类中删除不必要的注释之后,我能够解决这个问题。
package com.intervest.medical.aggregator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@org.aspectj.lang.annotation.Aspect
@Component
public class Aspect {
private Logger logger = LoggerFactory.getLogger(this.getClass());
public void aspect() {
logger.info("FFFFFFFFFFFFF {} | request {} | registerParam {}", "RETURNVALUE", "request", "registerParam");
}
}
https://stackoverflow.com/questions/72141348
复制相似问题