java面试题整理( 四 )
@Required 注释应用于 bean 属性的 setter 方法 , 它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中 , 否则容器就会抛出一个 BeanInitializationException 异常 。
六十一.autowired和resource?
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上 。
2.@Autowired默认按类型装配(这个注解是属业spring的) , 默认情况下必须要求依赖对象必须存在 , 如果要允许null值 , 可以设置它的required属性为false , 如:@Autowired(required=false), 如果我们想使用名称装配可以结合@Qualifier注解进行使用
六十二.构造方法注入和设值注入有什么区别?
- 设值注入写法直观便于理解 , 使各种关系清晰明了 。
- 设值注入可以避免因复杂的依赖实例化时所造成的性能问题 。
- 设值注入的灵活性较强 。
- 构造方法注入可以决定依赖关系的注入顺序 , 有限依赖的优先注入 。
- 对于依赖关系无需变化的Bean , 构造方法注入使所有的依赖关系全部在构造器内设定 , 可避免后续代码对依赖关系的破坏 。
- 构造方法注入中只有组建的创建者才能改变组建的依赖关系 , 更符合高内聚原则 。
上下文更新事件(ContextRefreshedEvent):该事件会在ApplicationContext被初始化或者更新时发布 。 也可以在调用ConfigurableApplicationContext 接口中的refresh()方法时被触发 。
上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件 。
上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext的Stop()方法停止容器时触发该事件 。
上下文关闭事件(ContextClosedEvent):当ApplicationContext被关闭时触发该事件 。 容器被关闭时 , 其管理的所有单例Bean都被销毁 。
请求处理事件(RequestHandledEvent):在Web应用中 , 当一个http请求(request)结束触发该事件 。 六十四.FileSystemResource 和 ClassPathResource 有何区别?
ClassPathResource在环境变量中读取配置文件 , FileSystemResource在配置文件中读取配置文件 。
六十五.Spring 框架中都用到了哪些设计模式?
单例模式、工厂模式、模板方法、代理模式、观察者模式...
六十六.设计模式应用场景
组合模式:针对树形结构
- 对手|一加9Pro全面曝光,或是小米11最大对手
- 面临|“熟悉的陌生人”不该被边缘化
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- 现状|程序员现状揭秘:平均年薪20.36万,Java人才需求量最大
- Win10系统桌面|手机桌面秒变Win10电脑系统,这波操作太给力了!
- 覆盖|iPhone13Pro概念机:机身正面被屏幕全覆盖,库克想搞事情?
- 页面|流程图怎样画?老板要我帮他做个组织结构图
- 成本|越拆越亏!旧家电回收面临成本困境:拆解一台旧电视亏损超20元
- 机器人|网络里面的假消息忽悠了非常多的小喷子和小机器人
