Java中的SSH框架之spring(1)
2016-01-09 15:45
656 查看
spring框架核心和思想是控制反转、依赖注入。
由容器来管理对象之间的依赖关系叫做控制反转或依赖注入。
控制反转(IoC):应用本身不负责依赖对象的创建和维护,依赖对象的创建和维护由外部容器负责,这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转;
依赖注入(DI):即在运行期间由外部容器动态地将依赖对象注入到组件中。
1、首先需要引入JAR包: spring.jar、log4j-1.2.14.jar、commons-logging.jar。
2、创建web项目,增加以下几个packege
3、在Dao包中增加1个接口,2个实现类。
接口UserDao:
实现类FirstUserDao:
实现类SecondUserDao:
4、在service包中增加1个接口,1个实现类
接口UserService:
实现类UserServiceImpl:
5、在src目录下增加spring的配置文件applicationContext.xml,在配置文件中ID的值是不能重复的,xml中通过行为userdao注入SecondUserDao这个类。
因为UserServiceImpl类中save方法中调用userDao.save(),因为UserDao是一个接口,他对应有2个实现类,这时我们需要知道调用的是该接口的哪个实现类,没用框架的话我们会通过UserServiceImpl.setUserDao(“对应的实现类”)来实现,但使用spring框架后这个操作就由xml配置进行,这个也就是spring的依赖注入的概念。
6、在test包下,增加测试代码,ClassPathXmlApplicationContext这个类是检查当前class文件路径中是否存在applicationContext.xml。
目录结构如图:
由容器来管理对象之间的依赖关系叫做控制反转或依赖注入。
控制反转(IoC):应用本身不负责依赖对象的创建和维护,依赖对象的创建和维护由外部容器负责,这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转;
依赖注入(DI):即在运行期间由外部容器动态地将依赖对象注入到组件中。
1、首先需要引入JAR包: spring.jar、log4j-1.2.14.jar、commons-logging.jar。
2、创建web项目,增加以下几个packege
3、在Dao包中增加1个接口,2个实现类。
接口UserDao:
package spring.Dao; public interface UserDao { public void save(); }
实现类FirstUserDao:
package spring.Dao; public class FirstUserDao implements UserDao { public void save() { // TODO Auto-generated method stub System.out.println("----------firstUserDao-------------"); } }
实现类SecondUserDao:
package spring.Dao; public class SecondUserDao implements UserDao { public void save() { // TODO Auto-generated method stub System.out.println("----------secondUserDao-------------"); } }
4、在service包中增加1个接口,1个实现类
接口UserService:
package spring.Service; public interface UserService { public void save(); }
实现类UserServiceImpl:
package spring.Service; import spring.Dao.FirstUserDao; import spring.Dao.UserDao; public class UserServiceImpl implements UserService { private UserDao userDao; public void save() { // TODO Auto-generated method stub this.userDao.save(); } public void setUserDao(UserDao userDao) { this.userDao = userDao; } }
5、在src目录下增加spring的配置文件applicationContext.xml,在配置文件中ID的值是不能重复的,xml中通过行为userdao注入SecondUserDao这个类。
因为UserServiceImpl类中save方法中调用userDao.save(),因为UserDao是一个接口,他对应有2个实现类,这时我们需要知道调用的是该接口的哪个实现类,没用框架的话我们会通过UserServiceImpl.setUserDao(“对应的实现类”)来实现,但使用spring框架后这个操作就由xml配置进行,这个也就是spring的依赖注入的概念。
<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <bean id="FirstUserDao" class="spring.Dao.FirstUserDao"></bean> <bean id="SecondUserDao" class="spring.Dao.SecondUserDao"></bean> <bean id="UserServiceImpl" class="spring.Service.UserServiceImpl"> <property name="userDao" ref="SecondUserDao"></property> </bean> </beans>
6、在test包下,增加测试代码,ClassPathXmlApplicationContext这个类是检查当前class文件路径中是否存在applicationContext.xml。
package spring.test; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import spring.Service.UserServiceImpl; public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BeanFactory factory = new ClassPathXmlApplicationContext( "applicationContext.xml"); UserServiceImpl userServiceImpl = (UserServiceImpl) factory .getBean("UserServiceImpl"); userServiceImpl.save(); } }
目录结构如图:
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树