Spring IOC
1 新建Maven项目
选择根据模板创建项目,选择(maven-archetype-webapp)
接下来
输入groupId和artifactId
选择maven配置文件
选择工程路径
创建后的工程结构如下
新建java文件夹和resources文件夹
将java文件夹设置为Sources,resources设置为Resources
添加web模块
在artifacts中新增lib目录
至此,工程创建完毕
2 引入Spring
pom.xml内容如下
<?xml version="1.0" encoding="UTF-8"?>
<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.fxy</groupId>
<artifactId>spring</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>spring Maven Webapp</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>4.3.14.RELEASE</spring.version>
</properties>
<!--统一版本-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- Spring的核心工具包。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<!--Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<!--Spring提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等. -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<!-- Spring表达式语言. -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
</dependency>
</dependencies>
</project>
新建Pet 、Cat、Dog、Person类测试对象管理
package com.fxy.spring.test1;
public abstract class Pet {
protected String petName;// 宠物名
protected String breed;//品种
public abstract void sound();
public String getPetName() {
return petName;
}
public void setPetName(String petName) {
this.petName = petName;
}
public String getBreed() {
return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}
@Override
public String toString() {
return "Pet{" +
"petName='" + petName + '\'' +
", breed='" + breed + '\'' +
'}';
}
}
Cat类:
package com.fxy.spring.test1;
public class Cat extends Pet {
@Override
public void sound() {
System.out.println(petName+":喵喵");
}
}
Dog类:
package com.fxy.spring.test1;
public class Dog extends Pet {
@Override
public void sound() {
System.out.println(petName+":汪汪");
}
}
Person类:
package com.fxy.spring.test1;
import com.fxy.spring.test1.Cat;
import com.fxy.spring.test1.Dog;
public class Person {
protected String name;
protected String sex;
protected int age;
protected Cat cat;
protected Dog dog;
public void playWithCat(){
cat.sound();
}
public void playWithDog(){
dog.sound();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", cat=" + cat +
", dog=" + dog +
'}';
}
}
resources文件夹下添加配置文件testBeans1.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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<bean id="car" class="com.fxy.spring.test1.Cat" p:petName="小黑" p:breed="蓝猫"/>
<bean id="dog" class="com.fxy.spring.test1.Dog" p:petName="金条" p:breed="金毛"/>
<bean id="Person" class="com.fxy.spring.test1.Person"
p:cat-ref="car"
p:dog-ref="dog"
p:age="23"
p:name="王大炮"
p:sex="男" />
</beans>
测试类:
package com.fxy.spring.test1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test1 {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:testBeans1.xml");
Person person = applicationContext.getBean(Person.class);
System.out.println(person.toString());
person.playWithCat();
person.playWithDog();
}
}
执行结果:
Person{name='王大炮', sex='男', age=23, cat=Pet{petName='小黑', breed='蓝猫'}, dog=Pet{petName='金条', breed='金毛'}}
小黑:喵喵
金条:汪汪