- Bean的定义
Spring通过注解将类标记为Bean,并将其注册到Spring容器中。
常用注解:
@Component
通用的注解,用于标记一个类为Spring的Bean。Spring会自动扫描并注册该类为Bean。
@Service
用于标记服务层的类,通常用于业务逻辑层。功能和 @Component 相同,但语义上更清晰。
@Repository
用于标记数据访问层(DAO)的类,通常用于数据库操作。功能和 @Component 相同,但语义上更清晰。
@Controller
用于标记控制器类,通常用于Web层的控制器。功能和 @Component 相同,但语义上更清晰。
@Configuration
用于标记配置类,通常与 @Bean 注解一起使用,定义Bean。
@Bean
用于在配置类中定义Bean。通常用于第三方库的类或需要自定义初始化的Bean。
- Bean的扫描
Spring需要扫描注解标记的类,才能将其注册为Bean。
常用注解:
@ComponentScan
用于指定Spring扫描的包路径。可以指定多个包路径。
@ComponentScan(basePackages = {"com.example.service", "com.example.repository"})
- Bean的作用域
Spring支持多种Bean的作用域,默认是单例(Singleton)。
常用注解:
@Scope
用于指定Bean的作用域。常用作用域包括:
singleton:单例模式(默认)。
prototype:每次请求都会创建一个新的Bean。
- Bean的依赖注入
Spring通过依赖注入(DI)将Bean注入到其他Bean中。
常用注解:
@Autowired
用于自动注入Bean。可以用于字段、构造方法或Setter方法。
@Qualifier
当有多个相同类型的Bean时,用于指定具体的Bean名称。
@Value
用于注入配置文件中的值或表达式。
- Bean的生命周期
Spring允许在Bean的生命周期中执行自定义逻辑。
常用注解:
@PostConstruct
用于标记Bean初始化后执行的方法。
@PreDestroy
用于标记Bean销毁前执行的方法。