zoukankan      html  css  js  c++  java
  • 跳槽季 | 干货分享:Java开发面试题,三个重量级spring面试题

    一年又一年,又到了寻找新机会的绝佳时机,Java程序员,为了自己的钱途,怎么也得拼上自己的所有绝学。今天给大家分享的是在面试中,三个重量级的题,关于spring的,助大家一臂之力!

    1、怎样用注解的方式配置Spring?

    Spring在2.5版本以后开始支持用注解的方式来配置依赖注入。可以用注解的方式来替代XML方式的bean描述,可以将bean描述转移到组件类的内部,只需要在相关类上、方法上或者字段声明上使用注解即可。注解注入将会被容器在XML注入之前被处理,所以后者会覆盖掉前者对于同一个属性的处理结果。

    注解装配在Spring中是默认关闭的。所以需要在Spring文件中配置一下才能使用基于注解的装配模式。如果你想要在你的应用程序中使用关于注解的方法的话,请参考如下的配置。

    <beans>

    <context:annotation-config/>

    <!-- bean definitions go here -->

    </beans>

    在 <context:annotation-config/>标签配置完成以后,就可以用注解的方式在Spring中向属性、方法和构造方法中自动装配变量。

    下面是几种比较重要的注解类型:

    1.@Required:该注解应用于设值方法。

    2.@Autowired:该注解应用于有值设值方法、非设值方法、构造方法和变量。

    3.@Qualifier:该注解和@Autowired注解搭配使用,用于消除特定bean自动装配的歧义。

    4.JSR-250 Annotations:Spring支持基于JSR-250 注解的以下注解,@Resource、@PostConstruct 和 @PreDestroy。

    2、如何向Spring Bean中注入一个Java.util.Properties?

    第一种方法是使用如下面代码所示的<props> 标签:

    <bean id="adminUser" class="com.howtodoinjava.common.Customer">

    <!-- java.util.Properties -->

    <property name="emails">

    <props>

    <prop key="admin">admin@nospam.com</prop>

    <prop key="support">support@nospam.com</prop>

    </props>

    </property>

    </bean>

    也可用”util:”命名空间来从properties文件中创建出一个propertiesbean,然后利用setter方法注入bean的引用。

    3、请解释Spring Bean的自动装配?

    在Spring框架中,在配置文件中设定bean的依赖关系是一个很好的机制,Spring容器还可以自动装配合作关系bean之间的关联关系。这意味着Spring可以通过向Bean Factory中注入的方式自动搞定bean之间的依赖关系。自动装配可以设置在每个bean上,也可以设定在特定的bean上。

    下面的XML配置文件表明了如何根据名称将一个bean设置为自动装配:

    <bean id="employeeDAO" class="com.howtodoinjava.EmployeeDAOImpl" autowire="byName" />

    除了bean配置文件中提供的自动装配模式,还可以使用@Autowired注解来自动装配指定的bean。在使用@Autowired注解之前需要在按照如下的配置方式在Spring配置文件进行配置才可以使用。

    <context:annotation-config />

    也可以通过在配置文件中配置AutowiredAnnotationBeanPostProcessor 达到相同的效果。

    <bean class ="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

    配置好以后就可以使用@Autowired来标注了。

    @Autowired

    public EmployeeDAOImpl ( EmployeeManager manager ) {

    this.manager = manager;

    }

  • 相关阅读:
    macbook 无声音解决方案
    webapck dev server代理请求 json截断问题
    百度卫星地图开启
    服务器 nginx配置 防止其他域名绑定自己的服务器
    记一次nginx php配置的心路历程
    遇到npm报错read ECONNRESET怎么办
    运行svn tortoiseSvn cleanup 命令失败的解决办法
    svn add 命令 递归目录下所有文件
    m4出现Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
    Ubuntu下安装GCC,mpc、mpfr、gmp
  • 原文地址:https://www.cnblogs.com/qf-dd/p/10401522.html
Copyright © 2011-2022 走看看