ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring复习

2022-05-30 16:01:15  阅读:102  来源: 互联网

标签:容器 事务 复习 创建 ---- bean 实例 Spring



Spring中最重要的就是IOC(容器管理)和AOP(面向切面编程)两大功能

IOC控制反转
控制
资源的获取方式 主动 被动
容器
DI依赖注入
ClassPathXmlApplicationContext和FileSystemApplicationContext两种容器加载的区别
1.对象的闯将在容器创建完成的时候就创建完成了 同一个组件在ioc中只有一个实例 容器中没有组件会报异常 会利用setter方法为javabean的属性赋值 属性名由getset方法控制最好是自动生产
2.根据bean的类型从ioc容器中获得bean的实例,如果存在两个会报错,存在唯一会直接得到
3.通过构造器为bean赋值(),调用有参构造器,可以省略name属性,需要按照顺序指定或者index指定顺序,从0开始,也可以根据type指定参数类型。
通过p名称空间为bean赋值,实际是setter赋值。
4.通过继承可以bean配置信息的复用。
5.通过abstract创建一个模板bean。
6.按照配置文件顺序bean创建,依赖关系优先级要大于配置。
7.bean的作用域:prototype(多实例,容器启动默认不会创建,而是在需要获取的时候创建bean,每次创建都会创建一个新的bean),singleton(单例默认,在容器启动之前bean创建完成,每次都会使用这个实例)。
8.FactoryBean(Spring接口),IOC容器启动不会创建实例。
9.bean的生命周期:容器启动调用构造器----后置处理器before----初始化方法init----后置处理器after----初始化完成----bean销毁
10. SpEL语言:#{}
11.通过给bean上添加注解,快速讲bean加入到ioc容器中 @Controller@Repository@Service@Component context:exclude-filter指定扫描包时不包含的包 context:include-filter只扫描哪些包进入组件
12.使用@Autowired注解根据类型实现自动装配(require属性设置false找不到就默认为null赋值),@Qualifier指定id寻找。
13.@Resource是j2ee包下的拓展性强,如果切换成另外一个容器框架,依旧可以导入,而@Autowired是Spring下的。

AOP面向切面编程
指在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的编程方式,底层实现是动态代理。
1.cglib可以为没有实现接口的类实现动态代理,而jdk自带的不可以。
2.切入点表达式:execution(访问权限符 返回值类型 方法全类名(参数表)),*匹配一个,..匹配多个
3.可重用的切入点表达式,@Pointcut空方法

声明式事务@Transactional
事务管理器可以在目标方法运行前后进行事务控制。
事务细节:@Transactional的属性
-isolation-Isolation:隔离级别
-propagation-Propagation:传播行为(事务之间还有事务)
-noRollbackFor-Class[]:哪些异常事务不回滚
-rollbackFor-Class[]:哪些异常事务需要回滚
-readOnly-boolean:设置事务为只读事务
-timeout-int:超时时间
编程式事务
jdbctemplate可以快捷的操作数据库。

beanfactory和applicationcontext的区别
beanfactory:bean工厂接口,负责创建bean实例,容器里面保存所有单例bean其实是一个map。
applicationcontext:容器接口,更多的负责容器功能的实现,可以基于beanfactory创建好的对象之上完成强大的容器,容器可以从map中获取这个bean,并且aop,di都在applicationcontext接口下的这些类里面。

标签:容器,事务,复习,创建,----,bean,实例,Spring
来源: https://www.cnblogs.com/yhxc/p/16301615.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有