编程语言
首页 > 编程语言> > Java 面试机经(初级篇-16期)

Java 面试机经(初级篇-16期)

作者:互联网

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  1. 什么是基于注解的容器配置
    答案:
    相对于 XML 文件,注解型的配置依赖于通过字节码元数据装配组件,而非尖括号的声明。开发者通过在相应的类,方法或属性上使用注解的方式,直接组件类中进行配置,而不是使用 xml 表述 bean 的装配关系
    例如:
    Spring 的 Java 配置是通过使用 @Bean 和@Configuration 来实现。
    @Bean 注解扮演与 元素相同的角色。
    @Configuration 类允许通过简单地调用同一个类中的其他 @Bean 方法来定义 bean 间依赖关系

@Configuration
public class StudentConfig {
@Bean
public StudentBean myStudent() {
return new StudentBean();
}
}
  1. 常用注解
    答案:
    @Configuration 把一个类作为一个 IoC 容器,它的某个方法头上如果注册了@Bean,就会作为这个 Spring 容器中的 Bean。
    @Scope 此注解是 springIoc 容器中的一个作用域,在 Spring IoC 容器中具有以下几种作用域:基本作用域 singleton(单例)、prototype(多例),Web 作用域(reqeust、session、globalsession),自定义作用域;
    @Service 用于标注业务层组件
    @Controller 用于标注控制层组件
    @Repository 用于标注数据访问组件,即 DAO 组件。
    @Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
    @Scope 用于指定 scope 作用域的(用在类上)
    @RequestMapping:用于将特定 HTTP 请求方法映射到将处理相应请求的控制器中的特定类
    /方法
    @Autowired :在代码上下文中找到和其匹配(默认是类型匹配)的 Bean,并自动注入到相
    应的地方去。默认按类型装配,如果我们想使用按名称装配,
    可以结合@Qualifier 注解一起使用。如下:
    @Async 异步方法调用

  2. Spring 提供了哪些配置方式?
    答案:
    (1) 基于 xml 配置:bean 所需的依赖项和服务在 XML 格式的配置文件中指定。这些配置文件通常包含许多 bean 定义和特定于应用程序的配置选项。它们通常以 bean 标签开头。
    例如:<bean class=”com.demo.UserDao”/>
    (2) 基于注解配置:在相关的类,方法或字段声明上使用注解,将 bean 配置为组件类本身,而不是使用 XML 来描述 bean 装配。在 bean 实现类处通过标注@Compoent 或衍型类
    (@Rpository、@Service 及@Controller)定义 Bean
    (3)基于 Java API 配置:Spring 的 Java 配置是通过使用 @Bean 和 @Configuration 来实现。在标注了@Configuration 的 Java 类中,通过在类方法上标注@Bean 定义一个 Bean,方法必须提供 Bean 的实力化逻辑,例如@Bean(“userDao”)

  3. Spring 支持哪些 ORM 框架?
    答案:
    Hibernate、iBatis、JPA、JDO、OJB。

  4. 什么是编织(Weaving)?
    答案:
    将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程称为编织(Weaving)。在Spring AOP 中,编织在运行时执行。

  5. 什么是 WebApplicationContext?
    答案:
    WebApplicationContext 是 ApplicationContext 的扩展。它具有 Web 应用程序所需的一些额外功能。WebApplicationContext 用于为 Web 应用程序提供配置的界面。这在应用程序运行时是只读的,但如果实现支持,则可以重新加载。
    接口 getServletContext()向通用 ApplicationContext 接口添加方法,并定义在引导过程中必须绑定根上下文的已知应用程序属性名称。
    与通用应用程序上下文一样,Web 应用程序上下文是分层的。每个应用程序都有一个根上下文,而应用程序中的每个 servlet(包括 MVC 框架中的调度程序 servlet)都有自己的子上下文。
    除了标准的应用程序上下文生命周期功能之外,WebApplicationContext 实现还需要检测ServletContextAware bean 并相应地调用 setServletContext 方法。

  6. Spring MVC 中的转发和重定向,有什么区别?
    答案:
    请求重定向以 redirect:开头,请求转发以 forward:开头;
    区别:
    1) 转发比重定向快
    2) 重定向要经过客户端
    3) 若需要转到一个外部网站,只能使用重定向
    4) 重定向可以避免用户重新加载页面时再次发起请求
    5) 转发只有一次请求,而重定向实际是两次请求

  7. Spring MVC 和 Ajax 之间的相互调用
    答案:
    1)直接通过 URL 传递参数。”http://地址端口号/项目名/模块/接口方法?参数=’’”&参数=””
    2)对象序列化,如var user={id:userId,name:userName} data:{"params":JSON.stringify(user)}                                                              SpringMVC 后端:public String getUser (String params){};

 

标签:机经,Java,16,Spring,bean,应用程序,Bean,组件,注解
来源: https://blog.51cto.com/u_14602625/2964310