Spring框架

Posted 21karat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架相关的知识,希望对你有一定的参考价值。

在Java应用中,Spring框架是必须的,Spring的核心是IOC(控制反转)以及AOP(面向切面编程)

IOC

1.它是一个大容器。方便组装管理各类系统内外部资源。在Spring中,它会认为一切Java资源都是Java Bean,容器的目标就是管理这些Bean和它们之间的关系。

2.SpringIOC管理对象和其依赖关系,采用的不是人为的主动创建,而是由SpringIOC自己通过描述创建的,也就是说Spring是依靠描述来完成对象的创建及其依赖关系。

3.描述(XML配置文件),我们不使用new的方式去创建对象,而是使用XML配置文件的方式让SpringIOC容器自己去找对象,例如:

技术图片
1 <bean id="user" class="com.aone.user"/>
2 <bean id="person" class="com.aone.person">
3     <property name="user" ref="user"/>
4 </bean>
View Code

如果要切换其它引用那么只需要修改<bean id="user" class="com.aone.user"/>配置文件就可,不需要再去new 其它对象。

这种方式将bean之间的依赖关系解耦了,使程序结构更加清晰。

AOP

1.对面向对象的补充,目前广泛用于日志数据库事务控制,减少了大量重复代码,使得程序更加清晰。

2.在默认情况下,只要Spring接受到了异常信息,它就会将数据库的事务回滚,从而保证数据的一致性。例如:

技术图片
 1 private void updateUser(User user){
 2 
 3     /*************/
 4     //关于对象的其它操作
 5     /*************/
 6     //判断User是否存在
 7     boolean flag=userService.isNot(user);
 8     if(flag==false){
 9         //不存在抛出异常
10         throw new RuntimeException("用户不存在");//对象的其它操纵也会回滚
11     }    
12 }
View Code

为什么使用Spring框架?

使用Spring框架可以达到模块解耦,控制对象之间的协作目的,所以Spring框架流行。

 

以上是关于Spring框架的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Spring boot:thymeleaf 没有正确渲染片段

What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段