Java EE--Spring:bean的装配

方式二:用注解的方式装配

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);
	}
}

发布了57 篇原创文章 · 获赞 55 · 访问量 1969

猜你喜欢

转载自blog.csdn.net/qq_40561126/article/details/100586147
今日推荐