什么是springBoot
随着动态语言的流行(Ruby,Groovy,Scala,Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大
在上述环境下,SpringBoot应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用springBoot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用SpringBoot你可以不用或者只需要很少的Spring配置
springBoot的优点
- 快速构建项目
- 对主流开发框架的无配置集成
- 项目可独立运行,无需外部依赖servlet容器
- 提供运行时的应用监控
- 极大地提高了开发、部署效率
- 与云计算的天然集成
spring的模块
spring是模块化的,这意味着你可以只使用你需要的spring的模块。
springBoot实战
- 核心容器
- spring-Core:核心工具类,spring其他模块大量使用spring-Core
- Spring-Beans:Spring定义Bean的支持
- Spring-Context:运行时spring的容器
- Spring-Context-Support:Spring对第三方包的集成支持
- Spring-Expression:使用表达式语言在运行时查询和操作对象
- AOP
- spring-AOP:基于代理的AOP支持
- Spring-Aspects:基于AspectsJ的AOP支持
- messaging
- spring-Messaging:对消息框架和协议的支持
- web
- spring-web:提供基础的web集成的功能,在web项目中提供spring的容器
- spring-webMVC:提供基于servlet的springMVC
- spring-Websocket:提供WebSocket功能
- spring-Webmvc-Portler:环境支持
- 数据访问/集成(Data Access/Integration)
- spring-JDBC:提供以JDBC访问数据库的支持
- spring-TX:提供编程式和声明式的事务支持
- Spring-ORM:提供对对象/关系映射技术的支持
- Spring-OXM:提供对对象/XML映射技术的支持
- Spring-JMS:提供对JMS的支持
Spring基础配置的四大原则
- 使用POJO进行轻量级和最小侵入式开发
- 通过依赖注入和基于接口编程实现松耦合
- 通过AOP和默认习惯进行声明式编程
- 使用AOP和模板(temple)减少模式化代码
spring所有功能的设计和实现都是基于此四大原则的
AOP
- AOP: 面向切面编程,相对于OOP面向对象编程
Spring的AOP的存在白的是为了解祸。 AOP可以让一组类共享相同的行为。 在OOP中只能通过继承类和实现接口,来使代码的精合度增强,且类继承只能为单继承,阻碍更多行为 添加到一组类上,AOP弥补了。OP的不足。
- Spring支持AspectJ的注解式切面编程
- 使用@Aspect声明是一个切面
- 使用@After、 @Before、 @Around定义建言(advice), 可直接将拦截规则(切点)作为参数
- 其中@After、@Before、@Around参数的拦截规则为切点(PointCut), 为了使切点复用,可使用@PointCut专门定义拦截规则,然后在@After、@Before、@Around的参数中调用
- 其中符合条件的每一个被拦截处为连接点(JoinPoint)