项目架构之spring初探
2012-10-07 20:43
239 查看
spring是java开发中一个使用比较广泛的开源框架,spring更偏重于项目架构这一大块,是一个轻量级的EJB实现。了解该框架的使用可以让我们的开发变得简单并且易于管理。后期代码的维护也变得简单多了。
1.spring的特点:控制反转、依赖注入
依赖注入(Dependency Injection)和控制反转(Inversion
of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在
传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
2.使用spring的好处
依赖注入机制减轻了组件之间的依赖关系,同时也大大提高了组件的可移植性,这意味着,组件得到重用的机会将会更多。
3.开始写第一个spring程序
(1)下载spring开发所需开发包地址在百度上搜索下就OK了
(2)挑选出基础开发包,数据连接池的开发jar包可以不用,下面是我的所有jar包
(3)添加一个spring最基础的配置文件,名称可以随意我这里就取成beans.xml ,文件的schema部分可以从spring的参考文档里获取到路径大概是docs\reference\html_single里面找到一个index.html
<?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交给spring进行管理-->
<bean id="personManager" class="org.lxh.impl.PersonManger"></bean>
</beans>
里面的bean节点,配置的是要交给spring管理的业务bean
(4)下面是我写的接口和实现类
(5)使用junit测试一下代码
这里可以有多个spring配置文件,ClassPathXmlApplicationContext有多个构造函数,这里只是单个配置文件的情况
下面是运行结果
1.spring的特点:控制反转、依赖注入
依赖注入(Dependency Injection)和控制反转(Inversion
of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在
传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
2.使用spring的好处
依赖注入机制减轻了组件之间的依赖关系,同时也大大提高了组件的可移植性,这意味着,组件得到重用的机会将会更多。
3.开始写第一个spring程序
(1)下载spring开发所需开发包地址在百度上搜索下就OK了
(2)挑选出基础开发包,数据连接池的开发jar包可以不用,下面是我的所有jar包
(3)添加一个spring最基础的配置文件,名称可以随意我这里就取成beans.xml ,文件的schema部分可以从spring的参考文档里获取到路径大概是docs\reference\html_single里面找到一个index.html
<?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交给spring进行管理-->
<bean id="personManager" class="org.lxh.impl.PersonManger"></bean>
</beans>
里面的bean节点,配置的是要交给spring管理的业务bean
(4)下面是我写的接口和实现类
package org.lxh.dao; public interface PersonDao { public abstract void sayHello(); }
package org.lxh.impl; import org.lxh.dao.PersonDao; public class PersonManger implements PersonDao { /* (non-Javadoc) * @see org.lxh.impl.PersonDao#sayHello() */ public void sayHello(){ System.out.println("Hello World"); } }
(5)使用junit测试一下代码
package org.lxh.test; import org.lxh.dao.PersonDao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Testunit { @org.junit.Test public void TestUse(){ //初始化spring容器 ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml"); //取得业务bean PersonDao dao=(PersonDao)context.getBean("personManager"); dao.sayHello(); } }
这里可以有多个spring配置文件,ClassPathXmlApplicationContext有多个构造函数,这里只是单个配置文件的情况
下面是运行结果
相关文章推荐
- (九)整合spring cloud云服务架构 - HongHu commonservice-eureka 项目构建过程
- Spring核心框架IOC---- Spring项目程序架构---- 面向接口编程
- (实战)Spring Portlet MVC处理请求分析以及如何快速架构一个Portlet项目
- spring3+security3+struts2+mybatis+memcached+gbac权限架构开源项目
- (七)整合spring cloud云服务架构 - HongHu common-service 项目构建过程
- Spring Cloud微服务分布式云架构 - spring cloud集成项目
- struts2 spring4 hibernate4(s2sh)整合开发--项目整体架构的搭建
- Spring核心框架IOC---- Spring项目程序架构---- pring的三层架构模式
- Spring Cloud云服务架构 - commonservice-eureka 项目过程构建
- (三)spring cloud微服务分布式云架构 - Spring Cloud集成项目简介
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 整合Spring Cloud分布式微服务云架构集成项目
- Spring Cloud云服务架构 - common-service 项目构建过程
- Spring Cloud云服务架构 - commonservice-eureka 项目构建过程
- SSH(Struts+Spring+Hibernate)架构项目修改数据库密码但不重启应用的解决思路
- Spring Cloud微服务分布式云架构-集成项目简介
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- Spring Cloud云服务架构 - common-service 项目构建过程
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- SpringMVC+Spring+Mybatis(SSM)项目基础架构搭建