六大框架
struts1,struts2,hibernate,spring,springMVC,mybatis
MVC框架:struts1,struts2,springMVC
持久层框架:hibernate,mybatis
整合型框架/设计型框架:spring
spring的概述
spring是一个开源的框架,为了简化企业级的开发
spring是一个IOC(DI)和AOP容器框架,其中最重要的是IOC
spring的优点:
| |
---|
非侵入式 | 就是你加入了spring技术用来管理对象,而在开发中你可以用spring的API来创建对象,但是你也可以用用来的技术的方式来创建对象 |
依赖注入 | 就是DI(Dependency Injection,是IOC(反转控制)最经典的实现 |
面向切面编程 | Aspect Oriented Programming(AOP),AOP是补充OOP(面向对象编程)的缺陷而产生的 |
它是个容器 | 就好比如tomcat也是一个容器,能管理servlet的生命周期,spring也是容器,能管理应用对象的生命周期.之前我们需要对象的时候都是要开辟空间来new出来的,都是在一个项目中,不是每一个对象都是从头用到尾的.spring就能帮我们管理对象. |
组件化 | spring中的组件就是spring管理的对象,spring实现使用简单的组件配置组合成一个复杂的应用,使用的是XML和Java注释组合这些对象,不是使用spring,我们是类产生对象,对象调用方法组合成一个项目,对象和方法是关联起来的,对象和对象的耦合度很高,但是spring的每一个组件时独立的,相互的耦合度很低,但是在spring的管理下可以组合成一个项目,所以spring能降低对象的耦合度 |
一站式 | spring里面的IOC和AOP的基础之上可以整合各种企业应用的开源框架和优秀的第三方类库,而且spring自身也有表述层的springMVC和持久层的springJDBC |
spring模块
先从最下面开起,spring最重要的是IOC,其实最下面,就是最底层的Beans,corecontext,spEl就是由IOC管理的
然后就到AOP切面编程,Aspects是切面
再到上面的JDBC,就是连接数据库的东西,
ORM是关系映射,就是能自动将数据库的数据转变成类对象,然后我们操作数据库就好像直接操作对象一样简单
搭建spring运行时环境
首先我们肯定是先导入jar包
基础的jar包我们需要五个,其中四个在Spring自身目录下
spring的目录下:spring-framework-4.0.0.RELEASE\libs
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELE2ASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
还有一个是包是commons-logging-1.1.1.jar
因为spring可以帮你管理对象,所以在工程里面先创建class类先
注意,在class类里面的属性数据类型最好都是使用引用数据类型, 就比如要使用int的数据类型,改用成Integer数据类型,原因: 比如你在数据库中age是没有赋值的,那么在数据库中应该就是null, 那么你查出来也是null,当你想给int的数据类型赋值的时候,那么是赋值不了的,但是引用数据类型就可以 还有就是对象的属性我们可以不给它赋值,如果属性是基本数据类型,默认是0,如果是引用数据类型,那么默认是null,如果这个属性我们本来想给它赋值0的,那么基本数据类型的默认0和我们要设置0就有冲突,我们不知道是我们设置为0还是默认的0,但是引用数据类型就没有这个冲突
class类创建好后,就想让spring来管理你写得类,想这样就得在spring的配置文件里面配置好,所以现在就创建spring的配置文件,就是XML文件
一般是的是这样的
<?xml version&#61;"1.0" encoding&#61;"UTF-8"?>
<beans xmlns&#61;"http://www.springframework.org/schema/beans"xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&#61;"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"></beans>
如果你是使用eclipse的话,需要手动创建这样的XML文件,很麻烦,但是你可以为eclipse安装一个STS的插件,这样就可以直接创建spring的配置文件.
你可以直接在spring的官网上面下载,应该下载一个spring roo的软件包就行了,也可以点这里的链接spring roo https://projects.spring.io/spring-roo/
又或者下载eclipse的TST项目的插件,找你对应的eclipse的版本,比如这里的最新版
http://download.springsource.com/release/TOOLS/update/3.9.5.RELEASE/e4.8/springsource-tool-suite-3.9.5.RELEASE-e4.8.0-updatesite.zip
对应的版本改一下里面的黑色数字就行
下载后直接在eclipse里面安装就行,因为STS插件比较大,一般安装里面以spring.IDE结尾的就够你平时用了,应该有四个是以spring.IDE结尾了
如果你是使用Spring Tool Suite 4的在新建的菜单里面没有 Spring Bean Configration File也安装上面的补丁插件就行
上面的都搞定后就开始新建spring的配置文件,新建一个source folder,命名为conf,在里面创建
一个spring bean configration file,命名为applicationContxt的XML文件,里面的内容就是上面的了
很方便,然后我们就得在里面写我们要配置的class
然后我们要在applicationContxt里面给spring管理我们建的类,就是在里面创建bean的标签,一个bean代表的是一个类,里面还可以给bean设置里面对象的属性,就是利用子标签来设置的,例如:
<?xml version&#61;"1.0" encoding&#61;"UTF-8"?>
<beans xmlns&#61;"http://www.springframework.org/schema/beans"xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&#61;"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id&#61;"Person" class&#61;"jane.Person"><property name&#61;"id" value&#61;"1"></property><property name&#61;"name" value&#61;"张三"></property></bean></beans>
package jane;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test
{public static void main(String[] args){ApplicationContext ac&#61;new ClassPathXmlApplicationContext("applicationContext.xml");Person bean &#61; (Person)ac.getBean("Person");System.out.println(bean);}
}