spring中使用注解代替xml配置

package com.learn.bean;/*** @author Leon.Sun*/
public class User {public User() {System.out.println("User空参构造方法");}private String name;private Integer age;private Car car;public User(String name, Car car) {System.out.println("User(String name, Car car)");this.name = name;this.car = car;}public User(Car car, String name) {System.out.println("User(Car car, String name)");this.name = name;this.car = car;}public User(Integer name, Car car) {System.out.println("User(Integer name, Car car)");this.name = name + "";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;}public void init() {System.out.println("我是初始化方法!");}public void destory() {System.out.println("我是销毁方法!");}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.bean;public class Car {private String name;private String color;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}@Overridepublic String toString() {return "Car [name=" + name + ", color=" + color + "]";}}

package com.learn.bean;import org.springframework.stereotype.Component;@Component("user")
// 
public class User {public User() {System.out.println("User空参构造方法");}private String name;private Integer age;private 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;}public void init() {System.out.println("我是初始化方法!");}public void destory() {System.out.println("我是销毁方法!");}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.a_annotation;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.bean.User;public class Demo {/*** 创建方式1:空参构造*/@Testpublic void fun1() {/*** 1.创建容器*/ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");/*** 2.向容器要"user"对象*/User u = (User)ac.getBean("user");/*** 打印user对象*/
//		System.out.println(u);}
}
package com.learn.bean;import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
public class User {private String name;private Integer age;private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}}
package com.learn.bean;import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")@Scope(scopeName="prototype")
public class User {private String name;private Integer age;private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}}
package com.learn.a_annotation;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.bean.User;public class Demo {/*** 创建方式1:空参构造*/@Testpublic void fun1() {/*** 1.创建容器*/ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");/*** 2.向容器要"user"对象*/User u1 = (User)ac.getBean("user");User u2 = (User)ac.getBean("user");System.out.println(u1==u2);/*** 打印user对象*/
//		System.out.println(u);}
}
package com.learn.bean;import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;private Integer age;private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}}
package com.learn.a_annotation;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.bean.User;public class Demo {/*** 创建方式1:空参构造*/@Testpublic void fun1() {/*** 1.创建容器*/ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");/*** 2.向容器要"user"对象*/User u1 = (User)ac.getBean("user");User u2 = (User)ac.getBean("user");System.out.println(u1==u2);/*** 打印user对象*/
//		System.out.println(u);}
}
package com.learn.bean;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {@Value("tom")private String name;private Integer age;private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.a_annotation;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.bean.User;public class Demo {/*** 创建方式1:空参构造*/@Testpublic void fun1() {/*** 1.创建容器*/ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");/*** 2.向容器要"user"对象*/User u1 = (User)ac.getBean("user");/*** 打印user对象*/System.out.println(u1);}
}
package com.learn.bean;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;private Integer age;private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.a_annotation;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.bean.User;public class Demo {/*** 创建方式1:空参构造*/@Testpublic void fun1() {/*** 1.创建容器*/ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");/*** 2.向容器要"user"对象*/User u1 = (User)ac.getBean("user");/*** 打印user对象*/System.out.println(u1);}
}
package com.learn.bean;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;@Value(value="18")private Integer age;private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.bean;import org.springframework.stereotype.Component;@Component("car")
public class Car {private String name;private String color;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}@Overridepublic String toString() {return "Car [name=" + name + ", color=" + color + "]";}}
package com.learn.bean;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;@Value(value="18")private Integer age;@Autowiredprivate 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.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;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}@Overridepublic String toString() {return "Car [name=" + name + ", color=" + color + "]";}}

package com.learn.a_annotation;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.bean.User;public class Demo {/*** 创建方式1:空参构造*/@Testpublic void fun1() {/*** 1.创建容器*/ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");/*** 2.向容器要"user"对象*/User u1 = (User)ac.getBean("user");/*** 打印user对象*/System.out.println(u1);}
}
package com.learn.bean;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;@Value(value="18")private Integer age;/*** 自动装配* 问题:如果匹配多个类型一致的对象,讲无法选择具体注入哪一个对象*/@Autowired@Qualifier("car2")private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.bean;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;@Value(value="18")private Integer age;/*** 自动装配* 问题:如果匹配多个类型一致的对象,讲无法选择具体注入哪一个对象*/
//	@Autowired
//	@Qualifier("car2")/*** 手动注入,指定注入哪个名称的对象*/@Resource(name="car2")private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.bean;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;@Value(value="18")private Integer age;/*** 自动装配* 问题:如果匹配多个类型一致的对象,讲无法选择具体注入哪一个对象*/
//	@Autowired
//	@Qualifier("car2")/*** 手动注入,指定注入哪个名称的对象*/@Resource(name="car")private 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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.bean;import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;//@Component("user")
// 
//	@Service("user")
//	@Controller("user")@Repository("user")
//	@Scope(scopeName="prototype")
public class User {private String name;@Value(value="18")private Integer age;/*** 自动装配* 问题:如果匹配多个类型一致的对象,讲无法选择具体注入哪一个对象*/
//	@Autowired
//	@Qualifier("car2")/*** 手动注入,指定注入哪个名称的对象*/@Resource(name="car")private Car car;/*** 在对象被创建后调用.init-method*/@PostConstructpublic void init() {System.out.println("初始化方法!");}/*** 在销毁之前调用 destroy-method*/@PreDestroypublic void destory() {System.out.println("销毁方法!");}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;}public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
package com.learn.a_annotation;import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.bean.User;public class Demo {/*** 创建方式1:空参构造*/@Testpublic void fun1() {/*** 1.创建容器*/ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");/*** 2.向容器要"user"对象*/User u1 = (User)ac.getBean("user");/*** 打印user对象*/System.out.println(u1);ac.close();}
}
初始化方法!
User [name=tom, age=18, car=Car [name=玛莎拉蒂, color=呕吐绿]]
销毁方法!
作用域改成singleton,为啥呢,每次都创建一个新的,每次新的给你就不管了,只有放在容器中的才会纳入完整性里面,看到了效果了,这样的话这就是咱们的初始化和销毁,初始化销毁,初始化以及销毁方法,这样的话咱们注解就到这,这是Spring当中的注解,代替配置文件

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部