导航菜单
首页 >  spring考试题  > Spring期末复习

Spring期末复习

Spring期末复习-简要版 更好的阅读体验请前往鄙人博客

文章目录一、原理:二、Spring Bean作用域:1,singleton2,prototype3,request4,session5,global session 三、Spring注入方式:1,构造器注入2,setter注入(最主流做法)3,接口注入 四、懒加载:配置方式: 五、自动装配:先说手动装配是什么:所以自动装配:1,xml配置2,注解 六、面向切面:1,xml配置2,注解配置 七、事务:1,事务是一组操作,要么全部成功,要么全部失败。2,事务特性 ACID3,事务分类4,事务隔离级别(和mysql一致)5,事务的传播行为6,代码实现 八、注解:九、与设计模式的联系:十、配置文件(标签):闪闪の小窝—— 传送门

一、原理:

IOC(控制反转):(面向对象编程) 控制权由内部应用程序的代码转移到外部容器中去,控制权反转,由外部容器来控制程序之间的关系 DI(依赖注入): 内部应用程序依赖于外部容器给它创建并注入需要的外部资源,比如程序、组件之间的依赖关系等 AOP:(面向切面编程) 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 利用AOP可以对业务逻辑的各个部分进行隔离,从而使其各个部分之间的耦合度降低,提高程序可重用性跟开发效率

二、Spring Bean作用域:

bean标签中有个属性叫“scope”,它就是作用域

1,singleton

单例嘛,自然是所有对Bean的请求只要id与bean的定义匹配,就会返回bean的同一个实例

2,prototype

每次对Bean请求的时候Spring IOC都会创建一个新的作用域(tip:对于有状态的Bean应该用prototype反之singleton)

3,request

针对每次http请求,Spring容器会根据相关的bean的定义创建一个全新的并且只在当前request内有效的实例

4,session

针对http session起作用,Spring会根据相关的bean的定义创建一个全新的并且只在当前session内有效的实例 误区:session不是关闭浏览器就结束生命周期,关闭浏览器只是jsessionid重建。服务器内存中的数据不会马上清理。

5,global session

类似http session作用域不过仅基于portlet的web应用中才有意义

三、Spring注入方式: 1,构造器注入

Spring采用反射的方式,通过构造方法完成注入: 1)引入Spring的支持 2)知道具体的类的构造方法跟参数,方便Spring创建对象 3)在代码中写入Spring配置文件:

String configLocation="applicationContext.xml";ApplicationContext context=new ClassPathXmlApplicationContext(configLocation);Something thing=context.getBean("thing",Something.class);

tip:在Spring中一切资源都是bean

2,setter注入(最主流做法)

setter注入利用Java Bean规范: 1)将构造方法设置为无参构造,然后利用setter注入为其设置的新值,也是通过java的反射技术实现 2)配置文件中设置:

3,接口注入

有时资源并非来自自身系统而是来自于外界,此时数据库连接资源可以在Tomcat下配置,然后跳过JNDI的方式去获取

四、懒加载:

懒加载意思是容器启动的时候不创建对象,第一次要使用对象的时候才创建并且初始化 作用就是避免一旦bean非常多的时候Spring一启动就得一个个去实例化 懒加载只针对Spring创建bean为单例时才有意义,因为只有单例模式时才在Spring启动的时候创建bean,多例bean原本就是懒加载

配置方式:

1,xml配置,在bean中加个属性lazy-init="true",想要全局配置就在beans标签上加个default-lazy-init="true" 2,注解配置,在创建新对象的方法前加上@Lazy

五、自动装配: 先说手动装配是什么:

我们在peoplebean中手动装配了cat跟dog的bean,这就是手动装配

所以自动装配: 1,xml配置

在bean中加一个属性autowire="byName", 自动装配的方式有byName、byType、constructor、default、no byName:就是查询实体类中所有 setter方法的名字跟自己bean的id相同的自动装配 no:默认,不自动装配 byType:靠属性类型和bean的class进行识别。要保证 符合该type的bean唯一,否则会报错 constructor:靠构造函数入参的属性名进行识别

2,注解

1)得先在xml里开启注解,加上标签 2)在类中

相关推荐: