1.请解释一下,Spring 自动装配模式的框架是什么,它们之间有什么区别?
no :这是 Spring 框架的默认设置在此设置下自动组装关闭,开发人员需要自行设置 bean 定义中用标签明确设置依赖关系 。
byName :根据beann,该选项可以根据 名称设置依赖关系 。 当向一个 bean 当一个属性在中间自动组装时,容器将根据 bean 在配置文件中自动查询匹配名称 bean。 如果找到了,就装配这个属性。如果找不到,就报错了。 。
byType :可以根据这个选项 bean 类型设置依赖关系 。 当向一个 bean 当一个属性在中间自动组装时,容器将根据 bean 在配置文件中自动查询匹配类型 bean。 如果找到了,就装配这个属性。如果找不到,就报错了。 。
constructor :构造器的自动组装和 byType 模式相似,但只适用于与构造器相同的参数 bean ,如果在容器中找不到与构造器参数类型一致的参数类型 bean ,然后就会抛出异常 。
autodetect :自动组装或使用构造器进行模式自动探测 byType 自动装配 。 首先,我们将尝试找到合适的带参数的结构器。如果我们找到它,我们将使用结构器自动组装 bean 如果内部没有找到相应的结构器或无参与结构器,容器将自动选择 byTpe 自动装配方法 。
2.Spring 框架中使用了哪些设计模式?请举例说明Spring 框架中使用了大量的设计模式,以下列出了更具代表性的设计模式:
代理模式 — 在 AOP 和 remoting 用的比较多 。
单例模式 — 在 spring 在配置文件中定义 bean 默认为单例模式 。
模板方法 — 解决代码重复的问题 。 比如 RestTemplate, JmsTemplate, JpaTemplate。
前端控制器 —Spring 提供了 DispatcherServlet 分发请求 。
视图帮助 (View Helper )—Spring 提供一系列 JSP 在视图中,高效宏来辅助集成分散的代码 。
依赖注入 — 贯穿于 BeanFactory / ApplicationContext 接口的核心概念 。
工厂模式 —BeanFactory 用于创建对象的例子 。
3.说说 Springmvc 有哪些优点?它是基于组件技术的 . 所有应用对象 , 无论是控制器还是视图 , 或者业务对象等等 java 组件 ;并且和 Spring 其他基础设施紧密集成 。
不依赖于 Servlet API( 虽然目标是这样的 , 但在实现时,它确实取决于 Servlet 的 );
各种视图技术可以随意使用 , 而不仅限于 JSP;
支持各种要求资源的映射策略;
它应该容易扩展;
4.Spring 事务管理框架的优点是什么?它是不同的事务 API 如 JTA , JDBC , Hibernate , JPA 和 JDO ,提供不变的编程模式 。
它为编程事务管理提供了一套简单的服务 API 而不是一些复杂的事务 API。
支持声明式事务管理 。
它和 Spring 各种数据访问抽象层集成良好 。
5.AOP 应用场景、原理 、AOP 好处?AOP–Aspect Oriented Programming 面向截面编程;用于封装横切关注点,具体可用于以下场景:
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing, profiling and monitoring 记录跟踪优化校准
Performance optimization 性能优化
Persistence 持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
原理: AOP 它面向切面编程,通过动态代理为程序添加统一功能,重点解决一些公共问题 。
优点:
* 每一步之间良好的隔离耦合性大大降低 。
* 源代码无关,然后在不修改源代码的情况下扩展功能。
6.Spring 创建对象的常见注释是什么?@Component
@Controller
@Service
@Repository