自学内容网 自学内容网

java面试题

目录

spring


spring

spring bean配置原理(扫描包)

spring中的类使用@controller、@Service、@Repostory 

启动类会扫描这些注解下的然后注册到spring的ioc容器中

这些被注册进去的类就成为bean 与new 不同

他们是通过getBean方法创建

当需要使用时使用@AutoWrite注入到需要的类中进行使用

ioc是为了解决耦合问题、因为每次要new的话产生了耦合所有把所有需要使用的类

都直接放在ioc容器中、降低耦合性

spring ioc和DI区别

IOC为控制反转 DI为依赖注入

ioc是一种设计模式 是将本应由程序元来控制的类生命周期交给spring来创建并管理其的生命周期 从而吧创建类的活交给spring来控制反转

DI为依赖注入是ioc的一种实现方式通过构造函数、get\set方法返回给对象在Spring中可以使用xml和注解来实现就比如@Date @AllContr....

spring ioc的实现机制

spring ioc 通过简单工厂设计模式+Bean反射 传入一个标识生产相应对象

Factory需要传入标识就会自动生产对象

但标识这个东西写起来还是麻烦咯

所以我们直接用工厂创建bean! factory.getbean(位置)

而我们看了getBean的返回值就知道他会返回一个唯一标识这恰好可以当作Factory的标识来通过工场创建

至此一气呵成扔给了ioc容器完成控制反转

单例bean优势

1、如果每次都创建一个实力会增加内存消耗、ioc有反射会增加栈的深度

所以单例bean增加了服务器内存利用率

2、减少了jvm垃圾回收的负担

3、快速的获取到对象

springBean线程安全吗

spring AOP面向切面编程

为解耦而生、公共的东西交给AOP去处理(日志处理、事物处理、权限控制这些东西通过AOP去解决)


原文地址:https://blog.csdn.net/PHPneweer/article/details/137879806

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!