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 创建对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
