IOC容器--1.12. 基于 Java 的容器配置
用Java的方式配置Spring ,不使用Spring的XML配置,全权交给Java来做
JavaConfig是Spring的一个子项目,在Sring 4 之后成为核心功能
这种纯Java的配置方式,在SpringBoot中随处可见!
项目结构
配置类

@Configuration // beans 与Component有什么区别 :也会被Spring容器注册,本身也是一个@Component //@Configuration代表这是一个配置类,就和之前的beans.xml @ComponentScan("com.ljm") //包的扫描 @Import(My_config02.class) //引入其他的配置类(就可以用它里面的bean了) public class My_config { @Bean //注册一个bean 相当于beans 里面的bean // ID是方法名 class 是函数返回值 public User getUser01(){ return new User(); //这个就是返回要注入bean 的对象 } @Bean public Teacher getTeacher(){ return new Teacher(); //这个就是返回要注入bean 的对象 } }
实现类?

@Component //说明这个类被Spring 接管了,注册到容器中 public class User { private String name; private int age; public String getName() { return name; } @Value("娃哈哈") //赋值 public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
调用

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(My_config.class); //纯注解实现 就只能能用AnnotationConfig User getUser01 = context.getBean("getUser01",User.class); //这个name需要跟之前上面加@bean的方法名一样 System.out.println(getUser01.getName()); Teacher getUser02 = context.getBean("getTeacher", Teacher.class); //这个name需要跟之前上面加@bean的方法名一样 System.out.println(getUser02.toString()); Cat get03 = context.getBean("get_cat", Cat.class); //这个name需要跟之前上面加@bean的方法名一样 System.out.println(get03.toString());
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术