spring使用注解代替xml配置
终于快毕业了,spring也快忘光了,发几篇文复习一下知识点
spring配置文件中打开context命名空间后写入<context:component-scan base-package="spring"></context:component-scan
这里spring是个包名,想把哪个包下的对象放入spring容器中就写哪个包的完整包名
主要说下都有什么注解
- Compontent
格式就是在类的前面加上·@Component("")
,参数表示在容器中这个bean的名字是什么。
- Service,Controller,Repository
这三种注解的用法与上一种相同,用下面的方式可以更明显的显示出对象在service层,web层或者dao层。
我们都知道,在xml文件中一个bean标签有很多属性,例如
<bean name="helloworld2" factory-bean="hellofactory" factory-method="creat2" init-method="init" destroy-method="distory" scope="singleton">
上面的注解只提供了name与class,相应的肯定还有别的注解来更详细的定义bean。
- scope
指定对象的作用范围如@Scope(scopeName="prototype")
参数就是那四个参数
- Value
给参数赋值,给哪个参数赋值就加在哪个参数的前面,或者加在set方法前如
@Value("tom")
private String name;
尽量不用上面这种方式
@Value("tom")
public void setName(String name){
this.name = name;
}
用这种方法
- Autowired
当值是对象时,要将对象也放入容器内。使用@Autowired
自动装配来注入(当对象在容器只有一个)
- Qualifier
在注入时发现容器有多个对象时,使用@qualifier("")
来指定把哪一个对象注入进去
- Resource
使用@Resource(name="")
来直接告诉spring容器注入哪个对象
- PostConstruct,PreDestroy
对象的初始化和销毁注解,相当于init-method,destroy-method