//
Bean的初始化 全局:default-init-method="init"
配置方式:
public class Bean{
public void init(){
//初始化
}
}
接口方式:
public class Bean implements InitializingBean{
@Override
public void afterPropertiesSet() throws Exception{
//初始化
}
}
Bean 的销毁 全局:default-destroy-method="destroy"
配置方式:
public class Bean{
public void destroy(){
//销毁
}
}
接口方式:
public class Bean implements DisposableBean{
@Override
public void destroy() throws Exception{
//销毁
}
}
执行顺序: 接口方式->配置方式
如果有配置,则默认配置无效
//
Aware接口: 实现不同的Aware接口可获得相应的Bean实例
ApplicationContextAware
BeanNameAware
....
//
自动装配 default-autowire="No"
用了自动装配不需设置
//use-default-filter="false" 禁用自动发现与注册
//type: annotation 注解
// assignable 具体类
// regex 通配符
// custom 自定义
// aspectj
//----定义bean----
@Service
@Repository
@Controller
@Component
//----------------
@Autowire //自动装配(setter,构造器,成员,方法)
//Autowire(required=false) 找不到不抛出异常,给null
//Autowire(required=true) 每个类只有一个构造器可以标记true
//可注解系统接口:
//ApplicationContext 等等
//可注解在Set
或Map
, 解析所有该类型的Bean
//@Order可以使Set有序
//@Qualifier 指定哪个beanid,适用于多个实现类的情况
//可用在方法参数中
@Required //注解setter方法
@Resource //通过名称引用目标
//(name="xxx") 指定beanid, 默认为字段名
//@Autowire 适用于成员,构造器,多参方法
//这些允许在参数级别使用Qualifier缩小范围
//@Resource 适用于成员,只有一个参数的setter,不适合构造器
@PostConstruct //初始化
@PreDestroy //销毁 注解方法public void xx()
//-----------------
//作用范围
@Scope //prototype singleton session request 'global session'
//proxyMode= ScopedProxyMode.TARGET_CLASS
/
//配置bean容器
@Configuration 注解类
@Bean
// :
@Configuration
public class MyBeanConfig{
@Bean
//(
// name="unitBeans" //可指定beanname,默认为方法名
// initMethod="init" //可指定init-method
// destroyMethod="destroy" //可指定destroy-method
//)
public Handle unitBean(){
return new Unit();
}
}
//等同于
//
// 基于容器的注解和配置:
// 读取配置文件属性
//xml方式:
//注解方式:
@Configuration
@ImportResource("classpath:/ccino/properties.xml")
public class AppConfig{
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
return new DriverManagerDataSource(url,username,password);
}
}
//
/* JSR330标准注解
Maven引入javax.inject包
javax.inject
javax.inject
1
*/
@Inject //等效于Autowire, 用于类,属性,方法,构造器
@Named("name")
//类似@Qualifier 可用于参数 与@Component等效
//可用于类, 指定bean名
[笔记]Spring Bean的配置
最新推荐文章于 2024-10-16 10:13:45 发布