使用注解配置Spring
步骤:
1.导包4+2+spring-aop
2.为主配置文件引入新的命名空间(约束)
将配置文件以xml Editor形式打开
切换到design界面,右击beans,点击edit NameSpaces...
点击Specify New Namespace 点击browse
选择select XML Catalog entry 找到自己的schema文件
引入完毕~
3.开启使用注解代理配置文件
<!--指定扫描根目录下的 所有类中的注解
注意:扫描包时,会扫描指定目录的子孙包
-->
<context:component-scan base-package="cn.hncu"></context:component-scan>
4.在类中使用注解完成配置
//<bean name="user" class="cn.itcast.bean.User" />
将对象注册到容器
@Component("user")
@Service("user") // service层
@Controller("user") // web层
@Repository("user")// dao层
修改对象的作用范围
指定对象的作用范围@Scope(scopeName="singleton")
值类型引入
引用类型引入:
@Autowired 自动装配 //问题:如果匹配多个类型一致的对象.将无法选择具体注入哪一个对象
@Qualifier("car2")//使用@Qualifier注解告诉spring容器自动装配哪个名称的对象
@Resource(name="car")//手动注入,指定注入哪个名称的对象
初始化|销毁方法
@PostConstruct //在对象被创建后调用.init-method
@PreDestroy //在销毁之前调用.destory-method
package cn.hncu.bean;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
//<bean name="user" class="cn.itcast.bean.User" />
@Component("user")
//@Service("user") // service层
//@Controller("user") // web层
//@Repository("user")// dao层
//指定对象的作用范围
@Scope(scopeName="singleton")
public class User {
private String name;
@Value("18")
private Integer age;
//@Autowired //自动装配
//问题:如果匹配多个类型一致的对象.将无法选择具体注入哪一个对象.
//@Qualifier("car2")//使用@Qualifier注解告诉spring容器自动装配哪个名称的对象
@Resource(name="car")//手动注入,指定注入哪个名称的对象
private Car car;
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public String getName() {
return name;
}
@Value("tom")
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@PostConstruct //在对象被创建后调用.init-method
public void init(){
System.out.println("我是初始化方法!");
}
@PreDestroy //在销毁之前调用.destory-method
public void destory(){
System.out.println("我是销毁方法!");
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", car=" + car + "]";
}
}