spring IOC 的基本操作
创建项目,导入jar包依赖
首先创建一个项目spring01,在spring01项目的pom.xml文件导入spring相关jar包依赖,在pom.xml中的添加的代码如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
配置spirng框架配置文件
在src目录下, 创建Spring 的配置文件applicationContext.xml,并在配置文件中创建一个id 为userDao的Bean的Bean 。代码如下:
<?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-4.3.xsd"
>
<bean id="userDao" class="com.hxci.ioc.UserDaoImpl"/>
<bean id="userService" class="com.hxci.ioc.UserServiceImpl" >
<property name="userDao" ref="userDao"/>
</bean>
</beans>
创建UserDao接口
在src目录下,创建一个com.hxci.ioc 包,并在包中创建接口UserDao,然后在接口定义一个say()方法。代码如下:
package com.hxci.ioc;
public interface UserDao {
public void say();
}
创建接口实现类UserImpl
在com.hxci.ioc包下,创建UserDao接口的实现UserDaoImpl,该类需要实现接口中的say()方法,
并在方法中编写一条输出语句。代码如下:
package com.hxci.ioc;
public class UserDaoImpl implements UserDao {
public void say(){
System.out.println("userDao say hello World!");
}
}
创建IOC测试类
在com.hxci.ioc 包,创建测试类TestIoC,并在类中编写main()方法,在main()方法中,需要初始化Spring容器 ,并加载配置文件,然后通过Spring容器获取userDao实例(即Java对象),最后调用实例中的方法say()方法。关键代码如下:
package com.hxci.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIoC {
public static void main(String[] args) {
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao)applicationContext.getBean("userDao");
userDao.say();
}
}
测试结果如下:
创建service接口
在com.hxci.ioc 包中创建接口UserService,在接口中编写一个say()方法。代码如下:
package com.hxci.ioc;
public interface UserService {
public void say();
}
创建接口实现类UserServiceImpl
在com.hxci.io 包中,创建UserService接口的实现类的USer ServiceImpl,在类中的声明userDao属性,并添加属性的setter方法,代码如下
package com.hxci.ioc;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao=userDao;
}
@Override
public void say() {
this.userDao.say();
System.out.println("userService say hello World!");
}
}
更改spring配置文件
在配置文件applicationContext.xml ,创建一个id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息,并将userDao的实现里注入到userService中。关键代码如下。
<?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-4.3.xsd"
>
<bean id="userDao" class="com.hxci.ioc.UserDaoImpl"/>
<bean id="userService" class="com.hxci.ioc.UserServiceImpl" >
<property name="userDao" ref="userDao"/>
</bean>
</beans>
创建DI测试类
在com.hxci.ioc包中,创建测试类TestDI,来对程序进行测试,关键代码如下
package com.hxci.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDI {
public static void main(String[] args) {
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService= (UserService)applicationContext.getBean("userService");
userService.say();
}
}
执行程序后,控制台输出的结果为