一、创建maven project
二、创建实体类
1.Person.java
package com.entity;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Person {
private String pname;
private List<String> strList;
private Set<String> strSet;
private Map<String,String> strMap;
/*
* 测试构造方法注入
*/
private Student stu;
public Person(){
}
public Person(String name){
this.pname = name;
}
public void sayname(){
System.out.println("name:" + pname);
}
public Student getStu() {
return stu;
}
public void setStu(Student stu) {
this.stu = stu;
}
public List<String> getStrList() {
return strList;
}
public void setStrList(List<String> strList) {
this.strList = strList;
}
public Set<String> getStrSet() {
return strSet;
}
public void setStrSet(Set<String> strSet) {
this.strSet = strSet;
}
public Map<String, String> getStrMap() {
return strMap;
}
public void setStrMap(Map<String, String> strMap) {
this.strMap = strMap;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
}
2.Student.java
package com.entity;
public class Student {
private int age;
private String sname;
private String ssex;
public Student(){};
public Student(int age,String sname, String ssex){
this.age = age;
this.sname = sname;
this.ssex = ssex;
}
@Override
public String toString() {
return "Student [age=" + age + ", sname=" + sname + ", ssex=" + ssex + "]";
}
}
三、建spring的配置文件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/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 注入bean对象,id为标识名称,class为bean的路径-->
<bean id="person" class="com.entity.Person">
<property name="pname">
<value>bbb</value>
</property>
<!-- list -->
<property name="strList">
<list>
<value>zhaolist</value>
<value>qianlist</value>
<value>sunlist</value>
</list>
</property>
<!-- set -->
<property name="strSet">
<set>
<value>zhaoset</value>
<value>qianset</value>
<value>sunset</value>
</set>
</property>
<!-- map -->
<property name="strMap">
<map>
<entry key="key1">
<value>value1</value>
</entry>
<entry key="key2">
<value>value2</value>
</entry>
</map>
</property>
<!-- 测试构造注入 -->
<property name="stu">
<ref bean="student" />
</property>
</bean>
<!-- 有参构造的bean -->
<bean id="student" class="com.entity.Student">
<constructor-arg type="int" value="22" />
<constructor-arg type="java.lang.String" value="xiaoming" />
<constructor-arg type="java.lang.String" value="nan" />
</bean>
</beans>
四、导各种spring的jar包和其他jar包
可以通过创建pom.xml来导包,也可以从网上下载包,下面这个xml应该不全。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>spring01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
</dependencies>
</project>
五、写测试类
package com.spring;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.entity.Person;
import com.entity.Student;
public class Test {
public static void main(String[] args) {
Person p = new Person();
p.setPname("aaa");
p.sayname();
System.out.println("-------------");
//BeanFactory bf = new ClassPathXmlApplicationContext("applicationContext.xml");
//Person person = (Person)bf.getBean("person");
/*
* 下面这个app开头的有生命周期,上面的没有生命周期
*/
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person)app.getBean("person");
System.out.println("--------测试是否单例-----------");
Person person1 = (Person)app.getBean("person");
System.out.println(person == person1);
System.out.println(person.getPname());
System.out.println("-------------");
List<String> list = person.getStrList();
for(String ss : list){
System.out.println(ss);
}
Set<String> set = person.getStrSet();
for(String ss : set){
System.out.println(ss);
}
Map map = person.getStrMap();
Set<String> mss = map.keySet();
for(String ss : mss){
System.out.println(map.get(ss));
}
System.out.println("----------测试构造函数-------------");
/*
* 测试构造函数
*/
Student student = (Student)app.getBean("student");
student = person.getStu();
System.out.println(student);
}
}
六、最后的结构