Spring Bean装配

配置项

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值