spring ioc注解配置
spring3.0后引入组件自动扫描机制,可以在类路径下寻找标注了
- @Component /组件 泛指组件,组件不好归类时使用该注解
- @Service /服务 标注业务层组件
- @Controller /控制器 标注控制层组件
- @Respository /仓库 标注DAO组件
例:@Component(value="dog") 与 <bean id="dog"class="com.chinasofti.bean.Dog"></bean> 一样效果 如果不输入id,则默认值为当前类的首字母小写 value相当于指定xml中的id(最好不要省略value)
public class Dog{
}
bean的初始化和销毁设置(该注解式javabean的注解方式)标于init和destory方法上
@PostConstruct 对应 init-method
@PreDestroy对应destroy-method
setter方法注入 标注于对应的属性上
@Value(value="18")
private Long age;
spring组件的setter方法注入
@Resoure注解 在属性上注解完成注入,可以省略setter方法
@Resource(name="setterBasic") name的值是其他bean组件的id属性
private SetterBasic setterBasic;
注解的类,把这些类纳入Spring容器中管理,作用与xml文件中使用bean节点配置组件一样效果
- 需引入AOP jar包 spring-aop-版本号.jar
- Spring配置文件增加context命名空间与xsd的引用,使用注解还需要context组件解析配置文件
xmlns:context="http://www.springframework.org/schema/context" 引入命名空间
xsi:schemaLocation="..... (添加)http://www.springframework.org/schema/comtext/spring-context.xsd">
- 增加context的动态扫描
<context:component-scan base-package="com.。。。。。"></context:component-scan> context/环境;component/组件;scan/扫描
配置了base-package(根目录)后会自动扫描 com.。。。。包下的java类包含其子类。
spring aop applicationContext.xml头文件实例:
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.chinasofti.bean"></context:component-scan> </beans>