springboot容器
⬅️ 上一篇: springboot系列三: sprintboot自动配置
🎉 欢迎来到 springboot系列四: sprintboot容器功能 🎉
在本篇文章中,我们将深入探讨 Spring Boot 的容器功能。通过理解这些容器功能,您可以更加灵活地管理和扩展 Spring Boot 应用程序。
🔧 本篇需要用到的项目: quickstart项目
Spring注入组件的注解
Spring传统注解
说明:@Component,@Controller,@Service,@Repository 这些在Spring中的传统注解仍然有效,通过这些注解可以给容器注入组件。
案例演示
1.创建D:\idea_project\zzw_springboot\quickstart\src\main\java\com\zzw\springboot\bean\A.java
@Repository
public class A {
}
2.测试MainApp.java
, 其它注解不再一一测试.
@SpringBootApplication(scanBasePackages = "com.zzw")
public class MainApp {
public static void main(String[] args) {
//启动springboot应用程序/项目
ApplicationContext ioc = SpringApplication.run(MainApp.class, args);
System.out.println("ok");
//演示Spring中传统的注解依然可以使用 @controler @service @repository
A aBean = ioc.getBean(A.class);
System.out.println("aBean=" + aBean);
}
}
@Configuration
应用实例
●@Configuration应用实例需求
说明: 演示在SpringBoot, 如何通过 @Configuration 创建配置类来注入组件.
传统方式
●回顾传统方式如何通过配置文件注入组件. 基于XML配置bean
1.创建D:\idea_project\zzw_springboot\quickstart\src\main\java\com\zzw\springboot\bean\Monster.java
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsContructor
public class Monster {
private Integer id;
private String name;
private Integer age;
private String skill;
}
2.创建D:\idea_project\zzw_springboot\quickstart\src\main\resources\beans.xml
创建容器配置文件的方式在SpringBoot中依然好使
<!--配置了Monster bean-->
<bean class="com.zzw.springboot.bean.Monster" id="monster">
<property name="id" value="100"/>
<property name="name" value="孙悟空"/>
<property name="age" value="20"/>
<property name="skill" value="金箍棒"/>
</bean>
3.在springboot项目中,依然可以使用spring的配置bean/注入bean/获取bean方式
@SpringBootApplication(scanBasePackages = "com.zzw")
public class MainApp {
public static void main(String[] args) {
//=====演示在springboot项目,依然可以使用spring的配置bean/注入bean/获取bean方式 start===
ApplicationContext ac =
new ClassPathXmlApplicationContext("beans.xml");
Monster monster = ac.getBean("monster" , Monster.class);
System.out.println("monster=" + monster);
//=====演示在springboot项目,依然可以使用spring的配置bean/注入bean/获取bean方式 end=====
}
}
使用@Configuration
●使用SpringBoot的@Configuration添加组件
1.创建D:\idea_project\zzw_springboot\quickstart\src\main\java\com\zzw\springboot\config\BeanConfig.java
配置文件和配置类都差不多, 但是在springboot中开发尽量用配置类来完成Bean的注入.
/**
* 解读
* 1.@Configuration 表示这是一个配置类,等价于配置文件
* 2.程序员可以通过@Bean 注解注入bean对象到容器
* 3.当一个类被 @Configuration 标识, 该类-Bean 也会注入到容器
*/
@Configuration
public class BeanConfig {
/**
* 解读
* 1.@Bean: 给容器添加组件, 就是一个Monster bean
* 2.monster01(): 默认 你的方法名monster01 作为bean的名字/id
* 3.Monster: 注入类型, 注入bean的类型是Monster
* 4.new Monster(200, "牛魔王" , 500 , "芭蕉扇"); 注入到容器中具体的bean信息
* 5.@Bean(name = "monster_nmw"): 在配置/注入 bean 指定名字/id monster_nmw
* 6.默认是单例注入
* 7.通过 @Scope("prototype") 可以每次返回新的对象, 指定bean是多例
*/
//@Bean(name = "monster_aliasName")
@Bean
public Monster monster01() {