小编a.h*_*.ha的帖子

@Required注释如何与JavaConfig一起使用?

我是Spring Framework的新手,我遇到了@Required与Java配置应用程序相结合理解注释的问题.

这是一个例子.

配置文件中

@Configuration
public class AppConfig {
    @Bean
    public Movie movieA() {
        return new Movie();
    }

    @Bean
    public MovieHolder holder() {
        return new MovieHolder();
    }
}
Run Code Online (Sandbox Code Playgroud)

MovieHolder.java

public class MovieHolder {

    private Movie movie;

    public Movie getMovie() {
        return movie;
    }

    @Required
    public void setMovie(Movie movie) {
        this.movie = movie;
    }
}
Run Code Online (Sandbox Code Playgroud)

上下文初始化

ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MovieHolder holder = (MovieHolder) context.getBean("holder");
System.out.println("movie: " + holder.getMovie());
Run Code Online (Sandbox Code Playgroud)

据我所知,@Required注释的文档,应该会出现异常,因为电影不是直接设置或通过自动装配.而不是输出movie: null.

我究竟做错了什么?或者这不正确使用@Required注释?

spring annotations required

8
推荐指数
1
解决办法
5101
查看次数

开发 Spring 应用程序中最常见的错误是什么?

我目前正在明斯特大学准备我的学士学位论文。我计划自动识别 Spring 配置中的典型问题。市场上有很多工具可以执行静态代码分析以查找错误或问题。这些显然无法检测仅在运行时出现的问题。我将分析一个 Spring 应用程序的 ApplicationContext 并通过使用反射和 bean 图的分析来查找错误配置。

示例: 一个简单的示例是,如果有人想通过使用注释来使类或方法事务安全。他通常会在类或方法上方添加一个@Transactional-tag,但是如果应用程序没有正确配置并且没有注册到ApplicationContext 的事务管理器,它观察注解,那么该标记将被忽略。不会出现错误信息,这也是目前很难发现这类问题的原因。

问题: 使用弹簧机制的错误配置导致的最常见错误或架构故障是哪些,可以通过动态分析检测到?是否有任何项目参与做类似的事情?

PS在我的论文过程中,我将开发一个可以检测此类问题的原型,并在以后将其开源。:)

java testing spring automated-tests applicationcontext

5
推荐指数
1
解决办法
1507
查看次数