方式二:用注解的方式装配
Car类
package com.mfs.chapter02;
import java.beans.ConstructorProperties;
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.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import jdk.nashorn.internal.objects.annotations.Property;
//以下四种注解都可以用来注解bean,只是用来在不同层次使用显得代码更有层次感
@Component("car")
//@Repository("car")
//@Service("car")
//@Controller("car")
public class Car {
@Value("思域") //装配一般的属性
private String name;
@Value("红色")
private String color;
@ConstructorProperties({"思域","红色"}) //装配构造方法的属性
public Car(String name, String color) {
super();
this.name = name;
this.color = 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;
}
@Override
public String toString() {
return "Car [ name=" + name + ",color=" + color + "]";
}
}
User类
package com.mfs.chapter02;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
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.stereotype.Component;
@Component("user")
public class User {
@Value("MFS")
private String name;
@Value("21")
private int age;
// @Resource(name="car") //装配实例, 必须保留"name = "
@Resource(name = "car")
private Car car;
private String[] friends;
private List<String> list;
private Set<String> set;
private Map<Integer, String> map;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public String[] getFriends() {
return friends;
}
public void setFriends(String[] friends) {
this.friends = friends;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public Set<String> getSet() {
return set;
}
public void setSet(Set<String> set) {
this.set = set;
}
public Map<Integer, String> getMap() {
return map;
}
public void setMap(Map<Integer, String> map) {
this.map = map;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", car=" + car + ", friends=" + Arrays.toString(friends)
+ ", list=" + list + ", set=" + set + ", map=" + map + "]";
}
}
xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 注解方式装配,扫描指定包内的注解 -->
<context:component-scan base-package="com.mfs.chapter02"/>
</beans>
测试类
package com.mfs.chapter02;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:com/mfs/chapter02/applicationContext.xml")
public class Test {
@Autowired
private User user;
@org.junit.Test
public void test() {
System.out.println(user);
}
}