Discuss / Java / 这两个注解的问题。

这两个注解的问题。

Topic source

Loading...

#1 Created at ... [Delete] [Delete and Lock User]

其中@Configuration注解不是必须的,至少到这一节内容以前。简单看了一下源码,发现看不懂,,

@Configuration
@ComponentScan
public class AppConfig {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = context.getBean(UserService.class);
        User user = userService.login("bob@example.com", "password");
        System.out.println(user.getName());
    }
}

根据源码想看一下这两步干了什么事,发现不行,以后再研究。简单猜了一下无非是根据注解加反射,实例化类对象

   ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
   UserService userService = context.getBean(UserService.class);

java框架把复杂东西简单化,但是很多实现细节都隐藏起来了。知其然而不知其所以然,不爽😂

Come Together

#2 Created at ... [Delete] [Delete and Lock User]

你是对的,这里廖老师说的不太准确,`@Configuration` 注解不是必须的。这里有一些很微妙的情况,一般来说用于创建 ApplicationContext 的类(在这里就是 AppConfig)中会有一些 Bean 定义,此时就需要加上 `@Configuration` 注解来将这些 Bean 注入到上下文。如果将一个不带 `@Configuration` 注解的类用于创建 ApplicationContext ,那其实和构造函数不带参数效果没啥区别。。。


  • 1

Reply