java面试题
目录
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)!