首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在切入点Spring中创建名为'org.springframework.transaction.annotation. Error at ::0形式未绑定的bean时出错

在切入点Spring中创建名为'org.springframework.transaction.annotation. Error at ::0形式未绑定的bean时出错
EN

Stack Overflow用户
提问于 2022-05-06 12:16:55
回答 1查看 1.6K关注 0票数 1

下面提到了一个与面向Spring方面编程有关的错误。

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
    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

代码语言:javascript
运行
复制
  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();

}
EN

回答 1

Stack Overflow用户

发布于 2022-05-15 05:09:53

我解决了我的问题。我的方面课有个问题。我没有给那门课添加相关的注释。在将这些注释添加到方面类并从控制器类中删除不必要的注释之后,我能够解决这个问题。

代码语言:javascript
运行
复制
 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");
      

  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72141348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档