![59c0dd7e3b86f1f87ab10f353ca25be0.png](https://i-blog.csdnimg.cn/blog_migrate/92f67ef2a52c015e6bbc92418a2491a9.jpeg)
【70】
Spring
⦁ Spring框架优点?
答:方便解耦,简化开发,方便程序的测试,声明事物的支持,AOP编程的支持,方便集成各种优秀框架,降低Java EE API的使用难度,独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承,Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦,Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用,Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问,Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部
⦁ 谈谈你对spring IOC和DI的理解,它们有什么区别?
IOC 控制反转 是一种思想 即对象的控制权由程序内部创建转化到外部容器
使用SpringIOC容器可以帮我们设计出松耦合,更优良的程序,利于复用也使得程序整个体系结构变得非常灵活
DI依赖注入 组件之间的依赖关系由容器在运行期间决定,即由容器动态的将某个依赖关系注入到组件之中
⦁ spring配置bean实例化有哪些方式?
答:setter 方法,构造函数,静态工厂,实例工厂
⦁ 请介绍一下Spring框架中Bean的生命周期和作用域
答:ingleton(单例模式)、prototype(原型模式)、request(HTTP请求)、session(会话)、global-session(全局会话)
单例管理的对象:当scope=”singleton”,即默认情况下会在启动容器时(实例化容器时)实例化,我们也可以指定Bean节点的lazy-init=true 延迟初始化bean,这时只有在第一次获取bean时才会初始化bean。当然也可以设置全局,
非单列管理的对象:scope=prototype ,容器也会延时初始化bean,在第一次请求改bean时才初始化,因为是非单列的,Spring一旦把对象交给你就不会在帮你管理这个对象了
⦁ Bean注入属性有哪几种方式?
答:@Controller:表明这是一个后台控制类,@Service,表明业务层。
@Autowired写在属性上,Ra....Maping写在方法上,@P...tory,规定范围,@Resource
⦁ @Autowired和@Resource之间的区别
@Autowired注解属于Spring 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果想允许null值 @Autowired(required=false),如果我们想使用名称进行装配
@Autowired()@Qualifier("baseDao")
@Resource 注解属于J2EE,默认按照名称进行装配,当找不到与名称匹配的bean时会按照类型进行装配 我们也可以指定name属性,如果指定了name属性则只会按照名称进行装配
⦁ 什么是AOP,AOP的作用是什么?
答:AOP:面向切面。
面向切面编程,切面的意思是在不动原有的数据时插入新的数据,又或者说有很多数据,插入起来太麻烦,可以用AOP去插入解决。
⦁ Spring里面如何配置数据库驱动?
答:1.配置解码,编码格式。
1. 配置事务管理器。
2. 配置数据库连接
3. 配置映射
4. 配置处理要解析的所有类的包路径。
⦁ 介绍一下Spring的事物管理
⦁ 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性
⦁ 事务就是一系列的动作,它们被当作一个单独的工作单元。这些动作要么全部完成,要么全部不起作用
⦁ 通知有哪些类型?
前置通知,后置通知,可以重复的那个通知