Java学习 --- @Configuration注解
一、@Configuration 与@Bean注解
- @Configuration //这个类就是配置类相当于配置文件
- public class MyConfig {
- @Bean
- public User user(){
- return new User("老王",25);
- }
- @Bean("pet") //相当于组件
- public Pet pet(){
- return new Pet("小白",1);
- }
- }
二、加载的组件相当于单实例
- @SpringBootApplication
- public class MyApplicataion {
- public static void main(String[] args) {
- ConfigurableApplicationContext run = SpringApplication.run(MyApplicataion.class, args);
- String[] names = run.getBeanDefinitionNames();
- for (String name: names) {
- System.out.println(name);
- }
- Pet pet1 = run.getBean("pet", Pet.class);
- Pet pet2 = run.getBean("pet", Pet.class);
- System.out.println("pet1 与 pet2:"+ (pet1 == pet2));
- }
-
- }
三、配置类本身是组件
- @SpringBootApplication
- public class MyApplicataion {
- public static void main(String[] args) {
- ConfigurableApplicationContext run = SpringApplication.run(MyApplicataion.class, args);
- String[] names = run.getBeanDefinitionNames();
- for (String name: names) {
- System.out.println(name);
- }
- MyConfig bean = run.getBean(MyConfig.class);
- System.out.println(bean);
- }
四、@Configuration(proxyBeanMethods = true)
- @Configuration(proxyBeanMethods = true) //这个类就是配置类相当于配置文件
- public class MyConfig {
- @Bean
- public User user(){
- return new User("老王",25);
- }
- @Bean("pet") //相当于组件
- public Pet pet(){
- return new Pet("小白",1);
- }
- }
原文链接:https://blog.csdn.net/qq_46093575/article/details/123719491