1. @Configuration(配置类)
作用 : 告诉 Spring 这是一个配置类,里面会定义很多 Bean(对象)。Spring 会专门去解析这个类,把里面的 @Bean 方法都执行一遍,从而把返回的对象注册到 Spring 容器中。
2. @Bean(声明 Bean)
作用 : 标注在方法上,表示"这个方法的返回值是一个 Spring Bean,要交给 Spring 容器管理"。
特点:
- 方法名默认就是 Bean 的名称(也可以通过 name 或 value 属性自定义)。
- 可以有参数,Spring 会自动注入依赖(类似构造函数注入)。
- 通常写在 @Configuration 类里面。
java
@Configuration
public class ShiroConfig {
@Bean
public DefaultWebSecurityManager sessionManager() {
DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
// ... 配置
return manager;
}
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager sessionManager) {
// 你之前的那段代码
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
bean.setSecurityManager(sessionManager);
return bean;
}
}
@Component
告诉 Spring:"这个类是一个组件,请帮我自动创建并管理它(注册成 Bean)。"
Spring 通过组件扫描(Component Scan) 找到带有 @Component 的类,自动实例化并放入 Spring 容器中。
基本用法
Java
csharp
@Component
public class UserService {
public void sayHello() {
System.out.println("Hello!");
}
}