Spring框架
Spring框架简介
Spring基础
<1>什么是Spring?
Spring是分层的JavaSE/JavaEE 一站式服务, 轻量级的开源框架
JavaEE程序在服务器被分为三层, web层[表现层] 业务逻辑层, 数据访问层[集成层,持久层]
- web层 SpringMVC --表现层
- 业务层 Sping的Bean的管理, AOP的管理,事务管理
- 持久层 SpringJDBCTemplate ORM模块(整合其他的ORM比如MyBatis或者HIbernate)
<2>Spring的核心
IOC控制反转和AOP面向切面的编程
课程以5.0.8为例讲解
官网:http://spring.io
<3>Spring的由来
Spring的出现是为了取代EJB的臃肿、低效、脱离现实
Expert One-to-One J2EE Design and Development
Expert One-to-One J2EE Development without EJB
Rod Johnson
2002年 :Expert One-to-One J2EE Design and Development分析JavaEE开发 使用的技巧 EJB
2004 年:Expert One-to-One J2EE Development without EJB 客观分析了JavaEE是需要什么 推出一个全新的框架,后来是Spring
<4>Spring 框架的优点(重点)
各种笔面试常见的问题:
- 方便解耦,简化开发
Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
- AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
- 声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
- 方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序
- 方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
- 降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低
Spring体系结构
![319a19216486811981f1ef78ba98f116.png](https://i-blog.csdnimg.cn/blog_migrate/0cf9fff0f6e774b76b7a696f1b3f55f3.jpeg)
Spring入门程序
a.新建maven工程
- 创建maven工程
![989bfa6309ef878f1e29fc9aa5cbd55c.png](https://i-blog.csdnimg.cn/blog_migrate/2a1de5d7a7b19541ca0fc38d489ebfa3.png)
选择org.apache.maven.archetypes maven.archetypes-webapp 1.0, 等待文件导入完成,进入下一步的选择
![7981d2a776d80bdd88b0875d9dc83624.png](https://i-blog.csdnimg.cn/blog_migrate/187cfffa5cdada7ba3fd34ac2c7a41d9.png)
![e261ec7ab882432d6764562b720a108f.png](https://i-blog.csdnimg.cn/blog_migrate/954fca5b0b17a6b8aac3b36f9b75112f.png)
设置相关内容,完成maven工程创建
![677e1072032d6af9a0984d6eeeb13138.png](https://i-blog.csdnimg.cn/blog_migrate/5fa241f8aca89d81874b4f480aaea8a0.png)
- 修改相关的配置
工程创建完毕可以看到工程出现如下内容,需要进行相关配置
![abf949c1c7073d70acbda31212112730.png](https://i-blog.csdnimg.cn/blog_migrate/20ac5daed7f770a918e01b659d322aa7.png)
<1>在pom.xml删除不必要的依赖,并加入以下内容:用以控制jdk版本
<build>
![abf99c1840313f4b8511c83796149228.png](https://i-blog.csdnimg.cn/blog_migrate/35841f42e31dc6e6c12e9ca51d1acdd4.png)
<2>.需要更改web.xml头文件的web版本
![b239a418cb04c95af7b2d3e065035614.png](https://i-blog.csdnimg.cn/blog_migrate/04674836d4f010b8c7aa9df89154dc29.png)
<?xml version="1.0" encoding="UTF-8"?>
![e1ad94aa217bd62a8346a65149d4bd62.png](https://i-blog.csdnimg.cn/blog_migrate/09006ba5bab89127014c0dd53d11498a.jpeg)
<3>.通过Navigator视图完成数据的修改
视图可以通过window –>show view 显示
![5646f33f12794ee12d15dc69e8d9bea6.png](https://i-blog.csdnimg.cn/blog_migrate/a11dadbb7abb66d9fa3837452a4daa45.jpeg)
更改如下内容:修改jdk版本、web版本
![47a63f8a6e0ca4402672200740effda4.png](https://i-blog.csdnimg.cn/blog_migrate/d6d6fedfc6d6582061657b6f3519ff9a.png)
![4f9d4c0108097df1bc65aaaaa553ef2e.png](https://i-blog.csdnimg.cn/blog_migrate/116cf08e09aac8fe10125adf1ff07318.jpeg)
<4>.工程上右键builder path:修改如下jar包,并将工程添加指定的服务器
![904ae947d52856cc2bd7321094e52b35.png](https://i-blog.csdnimg.cn/blog_migrate/6564792c98279dc16ac75005635b3922.png)
![fc3e86b18a4e39887eb47825c218c451.png](https://i-blog.csdnimg.cn/blog_migrate/a7d355a965fc185412e3db8f2eedc709.jpeg)
![0ee8bd65225fc50b9d0b479b5c38d52c.png](https://i-blog.csdnimg.cn/blog_migrate/8c1fb068787dab8d26528e930185bd72.png)
完成配置之后检查配置信息是否成功,右键工程选择propertiesProject Facets,查看对应的jdk版本和web版本是否一致,如果不一致则要进行查阅、修改
![28b4719e632bcfcd5f821b69ece0672d.png](https://i-blog.csdnimg.cn/blog_migrate/a7ee8974adac01da925716f724c06260.jpeg)
- 完成上述配置,工程右键 maven—update project 更新查看,出现如下内容,第一步操作完成
![b85609984901f30cebad723a0574fbc1.png](https://i-blog.csdnimg.cn/blog_migrate/422fb35b2e4f27c726e7db5036251cd0.png)
b.导入jar包
1.需要在pom.xml 文件添加如下数据,点击保存等待更新完成:
<properties>
![d4f55db7e6fb60c3d0cc581708a697c0.png](https://i-blog.csdnimg.cn/blog_migrate/d20c8b86ae597235138d92b6bd642423.png)
更新完成查看工程Maven Dependcies出现如下jar包,并且可以在指定的仓库中查询到相应的内容,说明jar包导入成功
![928cde9ab1b4c670ca2ed4b9429b0076.png](https://i-blog.csdnimg.cn/blog_migrate/8fb0f745b0674dadec20e786288b1712.jpeg)
检查仓库中是否有如下内容:C:Userstx40228.m2repositoryorgspringframework
![fcafadb971fdaec7b2d136ffef902513.png](https://i-blog.csdnimg.cn/blog_migrate/bdafe5847fdee668b7303edce4a68edd.png)
c.准备核心配置文件
新建applicationContext.xml文件,导入如下数据
<?xml version="1.0" encoding="UTF-8"?>
![6d3c910044f86de69c7adfec08605621.png](https://i-blog.csdnimg.cn/blog_migrate/da78ded96bdc3f6c9b407465677c644c.png)
d.编写程序进行测试
- HelloServie接口:
public
- HelloServieImpl实现类:
public
- HelloServiceTest测试类:
import
- ApplicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
![b0acdd16c1166981c4875ef3555dc583.png](https://i-blog.csdnimg.cn/blog_migrate/e9aa0eb83dc43a72217d28dab35c0848.png)