了解Spring 构造注入和自动注入

构造注入

  1. 首先定义domain对象

    import java.util.Date;public class A {private int id;private String username;private String password;private char sex;private Date birthday;public A(int id, String username, String password, char sex, Date birthday) {super();this.id = id;this.username = username;this.password = password;this.sex = sex;this.birthday = birthday;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}
    }
    
  2. ApplicationContext.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byName"><bean id="a" class="cn.com.xalead.spring.A"><constructor-arg index="4" ref="cur"/><constructor-arg value="10"/><constructor-arg value="zhangsan"/><constructor-arg value="1111"/><constructor-arg value="M"/></bean><bean id="cur" class="java.util.Date"/></beans>
  3. 运行测试

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainClass1 {public static void main(String[] args) {BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");A a = (A)factory.getBean("a");System.out.println(a.getId() + ":" + a.getUsername() + ":" + a.getBirthday());}}

输出结果:10:zhangsan:Tue Dec 22 19:29:48 CST 2015

自动注入

  1. 首先定义domain对象,和上面的domain一致;
  2. ApplicationContext.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byName"><bean id="a" class="cn.com.xalead.spring.A" scope="singleton" autowire="byType"/>
    </beans>
  3. 测试运行

    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainClass1 {public static void main(String[] args) {BeanFactory factory = new ClassPathXmlApplicationContext("app*.xml");A a = (A)factory.getBean("a");System.out.println(a.getId() + ":" + a.getUsername() + ":" + a.getBirthday());}}

    输出结果:0:null:null