spring基础
spring 概述
spring 框架是一个轻量级的企业级开发的一站式解决方案。所谓解决方案就是基于spring 解决 java ee 开发的所有问题,spring 框架主要提供了ioc 容器、aop、数据访问、web开发、消息、测试等相关技术的支持。
spring 使用简单的pojo(plain old java object,即无任何限制的普通java 对象)来进行企业级的开发。每一个spring 管理的java对象都称之为bean;而spring 提供了一个ioc容器来初始化对象,解决对象间的依赖管理和对象的使用。
spring 4大原则
spring框架本身有4大原则:
1·使用pojo进行轻量级和最小入侵式开发
2·通过依赖注入和基于接口编程实现松耦合。
3·通过aop和默认习惯进行声明式编程。
4·使用aop和模板(template)减少模式化代码
spring 依赖注入
所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖,依赖注入的主要目的是为了解耦。
spring ioc 容器(applicationContext)负责创建bean,并通过容器将功能类bean注入到你需要的bean中。spring 提供使用xml、注解、java配置、groovy配置实现bean的创建和注入。
声明bean的注解
1·@component组件,没有明确的角色。
2·@services在业务逻辑层(service层)使用。
3·@repository在数据访问层(dao层)使用。
4·@controller 在展示层(mvc–>spring mvc)使用。
注入bean的注解
1·@autowired:spring提供的注解
2·@inject:jsr-330提供的注解
3·@resource,jsr-250提供的注解。
spring boot 特征
1·习惯优于配置
2·项目快速搭建
3·自动配置java congfig
4·内嵌 servlet 容器
5·运行中运用状态的监控。
spring 模块
核心容器(core container)
1·spring-core:核心工具类,spring其他模块大量使用spring-core;
2·spring-beans:spring 定义bean的支持;
3·spring-context:运行时spring 容器;
4·spring-context-support:spring容器对第三方包的集成支持;
5·spring-expression:使用表达式语言在运行时查询和操作对象。
aop
1·spring-aop:基于代理的aop支持;
2·spring-aspects:基于aspectJ的aop支持;
消息(messaging)
spring-messaging:对消息架构和协议的支持;
web
1·spring-web:提供基础的web集成的功能,在web项目中提供spring的容器;
2·spring-webMvc:提供基于servlet的spring MVC;
3·spring-webSocket:提供WebSocket功能;
4·spring-WebMvc-Portlet: 提供porlet 环境支持;
数据访问/集成(data access/integration)
1·spring-jdbc:提供以jdbc访问数据库的支持;
2·spring-tx:提供编程式和声明式的事务支持;
3·spring-orm:提供对象/关系映射技术的支持;
4·spring-oxm:提供对象xml映射技术的支持
5·spring-jms:提供对jms的支持;
spring 生态
1·spring boot:使用默认开发配置来实现快速开发;
2·spring xd:用来简化大数据应用开发;
3·spring cloud:为分布式系统开发提供工具类:
4·spring data:对主流的关系型和no sql数据库的支持;
5·spring integration:通过消息机制对企业集成模式(eip) 的支持;
6·spring batch:简化及优化大量数据的批处理操作;
7·spring security:通过认证和授权保护应用;
8·spring HATEOAS:基于HATEOAS 原则简化 rest服务开发;
9·spring Social:与社交API(如新浪微博、脸书)的集成;
10·spring AMQP:对基于AMQP的消息的支持;
11·spring Mobile:提供对手机设备检测的功能,给不同的设备返回不同的页面支持;
12·spring for Andorid:主要提供在 andorid上消费 restful api 的功能;
13·spring web flow:基于spring mvc 提供基于向导流程式的web应用开发;
14·spring web services:提供基于协议有限的 soap/web 服务;
15·spring LDAP:简化使用LDAP开发;
16·spring Session:提供一个API 及实现来管理用户会话信息;