SpringBoot 创建对象常见的几种方式小结
在 Spring Boot 中,将 Bean 对象添加到 IOC 容器中,通用的有下面几种方式:
- 使用
@Component
、@Service
、@Repository
或@Controller
注解 - 使用
@Configuration
和@Bean
注解 - 使用
@Import
注解导入其他配置类 - 通过
ApplicationContext
编程方式手动注册 Bean
1. 使用 @Component(或 @Service、@Repository、@Controller)注解
最常见的方式,Spring 会自动扫描并将带有这些注解的类注册为 Bean。
import org.springframework.stereotype.Component; @Component public class User { public void say() { System.out.println("Hello User!"); } }
配置扫描路径(通常在 @SpringBootApplication
上已经启用了扫描,如果需要指定包路径,可以使用 @ComponentScan
注解):
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
在 Spring Boot 启动时,@Component
注解的类会自动注册为 Bean,并添加到 IOC 容器中。
2. 使用 @Configuration 和 @Bean 注解
通过在 @Configuration
注解的配置类中使用 @Bean
注解,可以手动将对象添加到 Spring 容器中。
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class BeanConfig { @Bean public User user() { return new User(); } }
User 类:
public class user { public void say() { System.out.println("Hello User!"); } }
BeanConfig
类使用 @Bean
注解注册了一个 user
实例,Spring 会将其自动加入到 IOC 容器中。
3. 使用 @Import 注解导入配置类
@Import
注解可以导入其他配置类,将其配置的 Bean 添加到当前应用的 IOC 容器中。
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @Import(BeanConfig.class) public class MainConfig { // 通过 @Import 导入 BeanConfig 中的 Bean }
MainConfig
类通过 @Import(BeanConfig.class)
导入了 BeanConfig
中定义的所有 Bean,这样 MyBean
也会被注册到 IOC 容器中。
4. 使用 ApplicationContext 编程方式手动注册 Bean
在某些特殊的场景中,可能需要手动编程注册 Bean,这时可以使用 AnnotationConfigApplicationContext
或 GenericWebApplicationContext
类。
import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class ManualBeanRegistration { public static void main(String[] args) { // 创建 Spring 容器 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); // 注册配置类 context.register(BeanConfig.class); // 启动容器 context.refresh(); // 获取并使用 Bean MyBean myBean = context.getBean(MyBean.class); myBean.printMessage(); // 关闭容器 context.close(); } }
通过 AnnotationConfigApplicationContext
显式地手动注册了 BeanConfig
配置类,并启动了 Spring 容器。
总结
@Component
注解(及其衍生注解@Service
、@Repository
、@Controller
)是最常用的方式,通过自动扫描自动将 Bean 注册到 IOC 容器中。@Configuration
和@Bean
注解 可以在配置类中手动注册 Bean。@Import
注解 可以将其他配置类中的 Bean 导入到当前配置类中。- 手动注册 通过
ApplicationContext
等类可以编程方式注册 Bean。
到此这篇关于SpringBoot 创建对象常见的几种方式小结的文章就介绍到这了,更多相关SpringBoot 创建对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot普通类获取spring容器中bean的操作
这篇文章主要介绍了SpringBoot普通类获取spring容器中bean的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09
最新评论