Java 无法自动关联字段参数NameDiscoveryr
我有一个spring引导应用程序,其中有一个方面记录方法名称和参数Java 无法自动关联字段参数NameDiscoveryr,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个spring引导应用程序,其中有一个方面记录方法名称和参数 @Component @Aspect public class LoggingAspect { @Autowired private ParameterNameDiscoverer parameterNameDiscoverer; private static final Logger logger = LoggerFactory.getLogger(LoggingAspect.class); @Point
@Component
@Aspect
public class LoggingAspect {
@Autowired
private ParameterNameDiscoverer parameterNameDiscoverer;
private static final Logger logger = LoggerFactory.getLogger(LoggingAspect.class);
@Pointcut("within(@org.springframework.stereotype.Service *)")
public void beanAnnotatedWithServiceOrASpecializationOfIt() {}
...
...
}
但当我部署应用程序时,它会说
Could not autowire field: private org.springframework.core.ParameterNameDiscoverer
下面是正在使用的pom.xml文件的一部分
<properties>
<java.version>1.8</java.version>
<start-class>SampleApplication</start-class>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.0.M5</version>
</parent>
1.8
样本应用
org.springframework.boot
spring启动程序父级
1.3.0.M5
我想将方法参数名称及其值作为一个方面记录下来。我得到的是方法参数值,但不是它们的名称 在spring上下文中,您真的有ParameterNameDiscoveryr吗?如果您希望将其创建为spring boot自动配置的一部分,那么您将能够在自动配置日志中看到它,这些日志是启动时引导出来的
可能您必须将自己的ParameterNameDiscoveryr配置为Bean,或者添加额外的类路径依赖项,以便spring boot在自动配置期间为您创建一个,您需要确保在代码中的某个地方有一个带有
@Configuration
注释的类,如下所示:
@Bean
public ParameterNameDiscoverer parameterNameDiscoverer() {
return new DefaultParameterNameDiscoverer();
}
注意:对于您的特定用例,可能有更合适的ParameterNameDiscoveryr
实现,您应该查看spring文档以了解详细信息