注解配置Spring

使用注解配置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 + "]";
	}
	
}

猜你喜欢

转载自blog.csdn.net/lx678111/article/details/83118070