Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法自动关联字段参数NameDiscoveryr_Java_Spring_Spring Boot - Fatal编程技术网

Java 无法自动关联字段参数NameDiscoveryr

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

我有一个spring引导应用程序,其中有一个方面记录方法名称和参数

@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文档以了解详细信息