配置项
id 唯一标识
class 具体实例化的哪一个类 (必须要有的)
scope 范围 作用域
constructor arguments 构造器的参数
properties 类的属性
autowiring mode 自动装配
lazy-initialization mode 懒加载
initialization/destruction method 初始化和销毁的方法
作用域 scope=""
singleton:一个Bean容器中只有存在一份(默认)
prototype:每次请求创建新的实例
request:每http请求创建一个实例存在于当前request中
session:每http请求创建一个实例存在于当前session
global session:基于portlet的web中,跨项目传信息
-----------------------------------------------------------------------------------------------------
生命周期
定义:配置文件中定义的id和class
初始化:容器加载
<bean id="example" class="Example" init-method="init"
或
public class ExampleBean implements InitializingBean{
@Override
public void afterPropertiesSet() throws Exception{
}
}
使用:取出实例调用方法
销毁:容器停止
<bean id="example" class="Example" destroy-method="cleanup"
或
public calss Example implements DisposableBean{
@Override
public void destroy() throws Exception{
}
}
全局配置
<beans
default-init-method="init" default-destroy-method="destroy"
</beans>
接口高于单独配置覆盖全局配置
------------------------------------------------------------------------------------------------------------
Aware结尾接口:ApplicationContextAware、BeanNameAware
bean在初始化后获取相应的资源并进行操作扩展
----------------------------------------------------------------------------------------------------------------
自动装配(Autowiring):实现spring的注入
byname:根据属性名装配 id
byType:根据指定属性相同的bean
Constructor:与byType相似
<beans default-autowire=" " >
</beans>
-----------------------------------------------------------------------------------------------------
Resources:针对资源文件的统一接口
UrlResource
ClassPathResource
ServletContextResource
InputStreamResource
。。。。。。。
ResourceLoader
前缀:classpath:
file:
http:
(none)
承接Aware-----------------------------------------------------------------------------------------------------
注解定义bean作用域
classpath 扫描与组件管理:spring3.0使用java定义bean
context:annotation-config
<beans>
<context:annotation-config />
</beans>
@Component:通用注解,用于任何bean
@Repository:通常用于注解DAO,持久层
@Service:通常用于注解Service类,服务层
@Controller:通常用于Controller类,控制层(MVC)
@Autowired
@RequestMapping
@Required、@Resource、@Qualifier
元注解:注解的注解
为了能够监测类并注册相应的bean
( <context:component-scan /> 已包含 <context:annotation-config /> )
@scope("singleton")
代理方式 no、interface、targetClass
<beans>
<context:component-scan base-package=" "
scoped-proxy=" " />
</beans>
---------------------------------------------------------------------------------------------------------------------
@Autowired
默认情况下,找不到合适的bean导致自动注入失败 可以使用
@Autowired(required=false)
每个类只有一个构造器required=true
------
数组和Map自动注入
private List<Interface> list;
private Map<string,Interface> map;
数组有序注入@Order
--------
@Qualifier :按类型自动装配可能有多个bean实例,缩小范围,也可以指定单独的构造器参数和方法参数
--------------------------------------------------------------------------------------------------------------------------------
java 容器注解
@Bean :标识一个用于配置和初始化一个由SpringIoc容器管理的对象和方法,类似XML的<bean/>
和@Configuration使用
--------
@ImportResource
@Value
资源文件读取
<context:property-placeholder location=""/>
---------
@Scope
-----------
泛型自动装配
----------------------------------------------------------------------------------------------------
JSR-250@Resource注解或setter方法
@PostConstruct 初始化
@PreDestroy 销毁
---------
JSR330依赖javax.inject 使用Maven引入
@Inject
@Named