定义:Spring 是一个轻量级的 DI / IoC 和 AOP 容器的开源框架,目的为了简化java开发。
DI:注入
IOC:控制反转
AOP:面向切面编程
定义:项目的整体架构模型,可以协助我们更快更方便地进行开发。
定义:从框架的角度看即无需继承框架提供的任何类,当更换框架时,大部分的功能代码无需改变。
轻量级:非入侵性的、所依赖的东西非常少、资源占用非常少、部署简单等等特点。
重量级:与轻量级相反,一般迁移、更换起来会比较麻烦。
定义:一种java类,一个可重复使用的软件组件,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。 类中定义了具体的属性,并通过get、set方法暴露出去给其他类调用。(可以简单理解为数据传输模型的载体)
定义:简单的Java对象,具有getter/setter方法,常见的VO(value -object)和DTO(Data Transform Object)就是一种POJO,不允许有业务方法,也不能携带有connection之类的方法。(即不包含业务逻辑或持久逻辑等。)
特点:
这个类必须有一个公共的缺省构造函数。
这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
这个类应是可序列化的。
定义:从程序设计角度看就是装对象的的对象,因为存在放入、拿出等操作,所以容器还要管理对象的生命周期。
低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦)
声明式事务管理(基于切面和惯例)
方便集成其他框架(如MyBatis、Hibernate)
降低 Java 开发难度
Spring 框架中包括了 J2EE 三层的每一层的解决方案(一站式)
① Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系。
② Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
③ Spring 能非常简单的帮我们管理数据库事务。
④ Spring 还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板来方便数据库访问。
⑤ Spring 还提供与第三方Web(如Struts1/2、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
⑥ Spring 能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。
Data Access/Integration层包含有JDBC、ORM、OXM、JMS和Transaction模块。
Web层包含了Web、Web-Servlet、WebSocket、Web-Porlet模块。
AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现。
Core Container(核心容器):包含有Beans、Core、Context和SpEL模块。
Test模块支持使用JUnit和TestNG对Spring组件进行测试。
原文:https://www.cnblogs.com/riches/p/11488548.html