spring知识点总结
spring架构思想(一站式开发框架)
1.spring官方给出的架构图
#实际开发中spring架构给我们的开发思路
core Container层 | |
---|---|
模块名 | 作用 |
beans | spring作为IOC容器,可以管理项目中的实体类,以bean的形式交由spring 容器管理 |
core | core作为spring框架的核心Jar包 |
context | context主要的作用是设置注解支持,读取properties配置文件等功能 |
spel | spring的表达式 |
设计思想层 | |
AOP(面向切面编程)思想 | spring中实现Aop在项目开发中主要是用事务的管理,如果有相关的业务需求,需要用到面向切面编程可以直接使用spring的AOP |
Data Access层 | |
模块名 | 作用 |
JDBC | spring JDBC主要是spring提供的操作数据库的Jar,springJdbc区别与mybatis和hibernate,它没有实现ORM思想。它与Dbutils相似 |
ORM | spring提供orm包主要是为了整合hibernate框架, |
JMS | JMS java messages service 消息中间件 |
Transactions | spring框架提供Platform接口,用于管理事务,同时针对hibernate提供hibernateTransactionManager针对数据库连接池提供DataSource实现类 |
Web 层 | |
模块名 | 作用 |
servlet | springmvc的入口拦截器是Servlet,所以此处使用的servlet指springmvc |
web | web jar包中,在实际开发中常用的是spring提供的监听器Listener 用于监听spring容器中的实体类的创建的情况,常用的还有spring提供的编码拦截器CharacterEncodingFilter |
spring IOC(控制反转)
IOC(控制反转)简单理解:创建对象要使用New 关键字,spring IOC之后,对象的创建不用手动的使用new创建,对象的创建交由spring
spring DI
DI(依赖注入):将基本值类型或者是引用数据类型注入到一个类中
spring提供的注入方式(常用)
1. set注入:set注入主要将要注入的数据,通过被注入类的set方法注入类中
2. 构造注入:构造注入,主要是通过构造函数,将值注入(实际开发中用的也很少)
3.属性注入(如果被注入类属性为private,破坏封装性)
spring的注解配置(常用的注解配置)
1.放在类上的注解
注解的名称 | 注解的主要作用 |
---|---|
@Component | 将类以组件的方式放入的到spring容器中 |
@Repository | 将类放入到spring容器中与@component一致,repository主要标识该类是操作数据库的类 |
@Service | 将类放入到spring容器中与@component一致,service主要标识该类是业务逻辑层的代码 |
@Controller | 将类放入到spring容器中与@component一致,controller主要标识该类web层的类,其中如果是spring整合struts2,struts2的action也可以用@controller注解,springmvc中自带该注解 |
@scope | 标识该类是单例还是多例模式,spring中默认类为单例模式,设置多例@Scope(ScopeName=”prototype”) |
2.放在类中属性的注解
注解的名称 | 注解的主要作用 |
---|---|
@Value | 为类中的属性注入值,@value(“${name}”)也可以注入properties文件中的值 |
@Resource | 为类中属性(引用类型的属性)注入值, @Resource(name=”userservice”)指定注入spring容器中的名为userservice的对象 |
@Autowired | 为类中属性(引用类型的属性)注入值,该注解使用后,会在spring的容器中自动匹配注入类型的对象,注入到该类中 |
@Qualifier | @Autowired+@qualifier=@Resource |
spring AOP思想
Aop面向切面编程思想
spring实现AOP编程思想的原理
实现的原理 | 特点 |
---|---|
动态代理实现 | 底层基于JDK的动态代理的技术,被代理的对象必须有接口 |
cglib代理 | 被代理的对象无需接口 |
spring中AOP的实际开发中的应用
管理事务,具体可以参见https://blog.csdn.net/rollinginthedeepc/article/details/80637533
spring整合JDBC(spring-jdbc)
实际开发中的spring-jdbc用的不是很多,jdbcTemplate不是orm数据库操作框架,只是在jdbc的基础上做了简单的封装,和apache的开源数据库框架Dbutils使用的很类似。
spring整合web项目的架构图
- spring在servlet的基础上封装,为我们提供了一款很优秀的框架Springmvc
- spring的web包中提供了,开发中常用的组件的封装,如解决post提交的编码问题的filter
- 监听spring容器中对象创建的情况的listener
转载自原文链接, 如需删除请联系管理员。
原文链接:spring框架技术点总结,转载请注明来源!