1.搭建基本web项目
2.在WEB-INF下面添加lib和classes包,并修改路径
3.拷贝jar包 主要包括spring包+spring依赖包+myBatis包+mysql驱动包
4.编辑spring主配置文件 applicationContext.xml
5.配置web.xml文件
6.编辑控制层,写一个请求页面的方法,并测试
7.在6步中在添加一个请求数据的方法,并测试
8.写dao接口,db.properties数据库配置文件,mapper映射文件
9.在applicationContext.xml中配置myBatis相关的配置

什么是Spring:
------------------------------------------------------

1、Spring是一个轻量级的DI/IOC和AOP容器的开源框架
来源于Rod Johnson 在其著作《Expert one on one J2EE design and development》中阐述的部分理念和原型衍生而来。

2、Spring提倡以”最少侵入”的方式来管理应用中的代码,这意味着我们可以随时安装或卸载Spring。

Spring的优点:

1.低侵入/低耦合(降低组件之间的耦合度,实现软件各层之间的解耦。)

2.声明式事务管理

3.方便集成其他框架

4.降低JavaEE开发难度

5.Spring框架中包括JavaEE 三层(表现层,业务层,持久层)的每一层的解决方案

spring(容器)最少侵入的方式来管理代码 降低程序耦合性
将设计好的对象交给spring容器进行管理 当你需要对象直接从spring中拿,而不用去new对象
(整个项目中装配Bean的工厂)通过注入的方式使用特定的参数去调用实体类的构造方法来实例化对象。

mybatis(持久层框架)对jdbc操作数据库进行了封装 使开发者只管sql语句,而不用关注加载连接等
使用数据库连接池管理链接,避免了频繁创建了、关闭链接,浪费资源,影响性能的问题。
(通过xml管理sql语句)使java代码跟sql语句分离 使代码更加便于理解和维护

DI:Dependency Injection(依赖注入)

从字面上分析:

IoC:指将对象的创建权,反转给了Spring容器;

DI :指Spring创建对象的过程中,将对象依赖属性(简单值,集合,对象)通过配置设值给该对象。

IoC和DI其实是同一个概念的不同角度描述,DI相对IoC而言,明确描述了“被注入对象依赖IoC容器配置依赖对象”。

Container:容器,在生活中容器就是一种盛放东西的器皿,从程序设计角度看作是装对象的对象,因为存在对对象的存入、取出等操作,所以容器还要管理对象的生命周期。

IoC:Inverse of Control(控制反转):

读作“反转控制”,更好理解,不是什么技术,而是一种设计思想,好比于MVC。就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。

正控:若调用者需要使用某个对象,其自身就得负责该对象的创建。

反控:调用者只管负责从Spring容器中获取需要使用的对象,不关心对象的创建过程,也就是把创建对象的控制权反转给了Spring框架。

Spring的AOP:

什么叫做AOP:Aspect oritention programming(面向切面编程)

什么是切面:看图,业务方法 执行前后.

AOP的目的:

AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,

便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。

AOP的优势:

降低模块的耦合度、使系统容易扩展、更好的横切面代码复用性.

AOP当中的概念:

1、切入点(Pointcut):在哪些类,哪些方法上切入增强(where);

2、增强(Advice):早期翻译为通知,在方法执行的什么时机(when:方法前/方法后/方法前后/出现异常)做什么(what:增强的功能);

3、切面(Aspect):切面=切入点+通知,通俗点就是:什么时机,什么地点,做什么!

4、织入(Weaving):把切面加入到对象,并创建出代理对象的过程。(该过程由Spring来完成)。

最新文章

  1. WebForm(二)——控件和数据库连接方式
  2. oracle:ORACLE 实际返回的行数超出请求的行数
  3. html5 绘制图片 drawImage
  4. oracle中时间运算
  5. min.css----全世界最快的CSS框架
  6. 使用block来解决实现switch解决字符串
  7. poj 1273
  8. response和request
  9. redisSession和mockSession
  10. python调用远程chromedriver.exe、selenium抓包方法
  11. 高吞吐低延迟Java应用的垃圾回收优化
  12. c#pc上测试微信端企业公众商城个人中心链接的工具JMeter
  13. Docker构建其它组件
  14. angularjs的一些问题
  15. IOS多线程处理
  16. python进行爬虫
  17. Http protocal
  18. appium-java,切换源生app和webview
  19. java成神之——java常识
  20. Jmeter处理cookie

热门文章

  1. Java基础--Java基本数据类型
  2. Iterator接口(遍历器)和for/of循环
  3. 什么是Servlet?Servlet的周期和方法
  4. linux下 GUI 数码相册项目 持续更新中
  5. 修改js文件,引发的404问题
  6. ggplot2(1) 简介
  7. RPA如何跑赢传统自动化和人工?
  8. 2019-2020-2 20174313张博《网络对抗技术》Exp2-后门原理与实践
  9. CVE-20117-111882漏洞复现及利用
  10. github的上面的安全工具