spring ioc 与 di 注解配置

User.java

    package cn.itcast.bean;
    
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import javax.annotation.Resource;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Component;
    import org.springframework.stereotype.Controller;
    import org.springframework.stereotype.Repository;
    import org.springframework.stereotype.Service;
    
    /*@Component("user")
    	@Service("user") //Service层
    	@Controller("user") //web层
    */	@Repository("user1") //dao层
    //<bean name="user" class="cn.itcast.bean.User">
    //指定对象的作用域
    //@Scope(scopeName="prototype")//singleton
//配置多个对象
    public class User {
    	@Value("tom")
    	private String name;
    	@Value("18")
    	private Integer age;
    	//@Autowired //自动装配  问题:如果匹配多个类型一致的对象,将无法选择注入哪一个对象
    	//@Qualifier("car2")//高三spring容器装载哪一个对象
    	
    	@Resource(name="car2")//手动注入,指定注入哪一个名称的对象
    	private Car car;
    	
    	
    	
    	@Override
    	public String toString() {
    		return "User [name=" + name + ", age=" + age + ", car=" + car + "]";
    	}
    	public Car getCar() {
    		return car;
    	}
    
    	public void setCar(Car car) {
    		this.car = car;
    	}
    
    	public String getName() {
    		return name;
    	}
    	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("我是销毁的方法");
    	}
    	
    }

Car.java

package cn.itcast.bean;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("car")
public class Car {
	@Value("玛莎拉蒂")
	private String name;
	@Value("原谅绿")
	private String color;
	public String getName() {
		return name;
	}
	@Override
	public String toString() {
		return "Car [name=" + name + ", color=" + color + "]";
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43878297/article/details/88956125