什么是Spring的内部Bean?
只有将bean用作另一个bean的属性时,才能将bean声明为内部bean。为了定义bean,Spring的基于xml的配置元数据提供了元素的使用。内部bean总是匿名的,它们总是作为原型。
什么是Spring装配?
当bean在Spring容器中组合在一起时,它被称为装配或bean装配。Spring容器需要知道需要什么bean以及容器应该如何使用依赖注入来将bean绑定在一起,同时装配bean。
自动装配有哪些方式?
Spring容易能够自动装配bean。可以通过检查BeanFactory的内容让Spring自动解析bean的协作者。
自动装配的不同模式:
自动装配有什么局限?
覆盖的可能性:始终可以使用和设置指定依赖项,这将覆盖自动装配。
基本元数据类型:简单属性(如原数据类型、字符串和类)无法自动装配。
令人困惑的性质:总是喜欢使用明确的装配,因为自动装配不太精确。
什么是基于注解的容器配置
不使用xml来描述bean装配,开发人员通过在相关的类、方法或字段上声明使用注解将配置移动到组件类本身。它可以作为xml设置的替代方案。
例如:Spring的Java配置是通过使用@Bean和@Configuration来实现。@Bean注解扮演与元素相同的角色。@Configuration类允许通过简单的调用同一个类中其他@Bean方法来定义bean间依赖关系。
例如
@Configuration
public class StudentConfig{
@Bean
public StudentBean myStudent(){
return new StudentBean();
}
}
如何在Spring中启动注解装配?
默认情况下,Spring容器未打开注解装配。因此,要使用基于注解装配,我们必须通过配置<context:annotation-config />元素在Spring配置文件中启用它。
@Component,@Controller,@Repository,@Service有何区别?
@Component:这将java类标记成bean。它是任何Spring管理组件的通用构造型。Spring组件的扫描机制现在可以将其拾取并将其拉入应用程序环境中。
@Controller:这将一个类标记为Spring Web MVC控制器。标有它的Bean会自动导入到IoC容器中。
@Service:此注解是组件注解的特化。它不会对@Component注解提供任何其他行为。您可以在服务层中使用@Service而不是@Component,因为它以更好的方式指定了意图。
@Repository:这个注解是具有类似用途和功能的@Component注解的特化。它为DAO提供了额外的好处。它将DAO导入IOC容器,并使未经检查的异常有资格转换为SpringDataAccessException。
@Required注解有什么用?
@Required应用于bean属性的setter方法。此注解仅指示必须在配置时使用bean定义中的显示属性值或使用自动装配填充受影响的bean属性。如果尚未填充受影响的bean属性,则容器将抛出BeanInitialzationException。
@Autowired注解有什么用?
@Autowired可以更准确地控制应该在何处以及如何进行自动装配。此注解用于在setter方法,构造函数,具有 任意名称或多个参数的属性或方法上自动装配bean。默认情况下,它是类型驱动的注入。
@Qualifier注解有什么用?
当创建多个相同类型的bean并希望仅使用属性装配其中一个bean时,可以使用@Qualifier注解和@Autowired通过指定应该装配哪个确切的bean来消除歧义。
@RequestMapping注解有什么用?
@RequestMapping注解用户将特定Http请求方法映射到将处理相应请求的控制器中的特定类/方法。此注释可应用于两个级别:
SpringDAO有什么用?
SpringDAO使得JDBC,Hibernate或JDO这样的数据访问技术更容易以一种统一的方式工作。这使得用户容易在持久性技术之间切换。它还允许在编写代码时,无需考虑捕获每种技术不同的异常。
Spring JDBC API中存在哪些类?
使用Spring访问Hibernate的方法有哪些?
列举Spring支持的事务管理类型
Spring支持两种类型的事务管理:
Spring支持哪些ORM框架?
什么是AOP?
AOP就是面向切面编程,它与OOP面向对象编程相辅相成,提供了与OOP不同观点抽象软件结构的视角。在OOP中,我们以类Class作为我们的基本单元,而AOP中的基本单元是Aspect切面。
什么是Aspect?
Aspect由pointcount和advice组成。它既包含了横切逻辑的定义,也包括了连接点的定义。SpringAOP就是负责实施切面的框架,它将切面所定义的横切逻辑编织到切面所指定的连接点中。AOP的工作重心在于如何将增强编织目标对象的连接点上,这里包含两个工作:
什么是切点(JoinPoint)?
切点是程序运行中的一些时间点,例如一个方法的执行,或是一个异常的处理。在SpringAOP中,JoinPoint总是方法的执行点。
什么是通知(Advice)?
特定JoinPoint处的Aspect所采取的动作称为Advice。SpringAOP使用一个Advice作为拦截器,在JoinPoint的周围维护一系列的拦截器。
有哪些类型的通知(Advice)?
指出在Spring aop中Concern和cross-cuttingconcern的不同之处。
concern是我们想要在应用程序的特定模块中定义的行为,它可以定义为我们想要实现的功能。
cross-cutting concern是一个适用于整个应用的行为,这会影响整个应用程序。例如日志记录、安全性和数据传输是应用程序几乎每个模块都需要关注的问题,因此它们是跨领域的问题。
AOP有哪些实现方式?
实现AOP 的技术主要分两大类:
Spring AOP和AspectJ AOP有什么区别?
Spring AOP基于动态代理的方式实现,AspectJ基于静态代理方式实现。
Spring AOP仅支持方法级别的PointCut;AspectJ提供了完全的AOP支持,它还支持属性级别的PointCut。
如何理解Spring中的代理?
将Advice应用于目标对象 后创建的对象称为代理,在客户端对象的情况下,目标对象和代理对象是相同的。
什么是编织(Weaving)?
为了创建一个Advice对象而链接一个Aspect和其它应用类型或对象,称为编织(Weaving)。在Spring AOP中,编织在运行时执行。
Spring MVC框架有什么用?
Spring MVC框架提供模型-视图-控制器架构和随时可用的组件,用于开发灵活且松散耦合的Web应用程序。MVC模式有助于分离应用程序的不同方面,如输入逻辑,业务逻辑 和UI逻辑,同时在所有这些元素之间提供松散耦合。
描述一下DispatcherServlet的工作流程
什么是WebApplicationContext?
WebApplicationContext是ApplicationContext的扩展,它具有Web应用程序所需的一些额外功能。它与普通的ApplicationContext在解析主题和决定与哪个Servlet关联的能力方面有所不同。
什么是Spring?
Spring是Java企业级应用的开源开发框架。Spring只要用于开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。
使用Spring框架的好处是什么?
Spring由哪些模块组成?
原文:https://www.cnblogs.com/1ldk/p/14733525.html