java EE面试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34645958/article/details/81989025

  1.spring事务

    spring并不直接管理事务,而是提供了多种事务管理器,将事务的管理职责委托给各种持久层框架

     spring的事务分为两种:(1)编程式事务  (2)声明式事务

                 编程式事务:提供更详细的事务管理,但是会侵入到业务代码

                 声明式事务:基于AOP,所以既能起到事务管理的作用,又可以不影响业务代码的具体实现

     (1)编程式事务:一般使用TransactionTemplate,使用回调方法,把程序从获得和释放资源中释放出来

           

 TransactionTemplate tt = new TransactionTemplate(); // 新建一个TransactionTemplate
    Object result = tt.execute(
        new TransactionCallback(){  
            public Object doTransaction(TransactionStatus status){  
                updateOperation();  
                return resultOfUpdateOperation();  
            }  
    }); // 执行execute方法进行事务管理

    (2)声明式事务:可以通过配置的方式,也可以通过注解的方式

                1)配置方式

            2)注解方式:首先在配置文件中配置事务管理器,再开启注解,然后在需要进行事务管理的类或方法上使用@Transaction

<bean id="transactionManager" 
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

   

2.spring使用什么代理技术?

(1)如果被代理的对象实现了至少一个接口,则使用JDK动态代理

(2)如果没实现接口,则使用cglib代理(通过继承实现代理)

         如果要强制使用cglib  <aop:config proxy-target-class="true">

3.xml配置文件如何读取properties文件中的内容?

<context:property-placeholder location="classpath:db.properties">

4.Spring中的相关注解有哪些?

(1)类加入容器成bean:@component  @controller  @service  @respository

(2)从容器中拿bean:@Autowired  @Qualifier("name")  @resource("name") 

                                       第一个根据type注入,后两个根据名字注入(不同点时resource是 javaEE注解)

(3)spring mvc注解:@requestmapping  处理请求地址映射

                                     @pathVariable(" ")string id 取出uri变量作为参数

                                     @responseBody 将返回的对象通过转换器转换为适当格式后返回,通常返回json或xml(不再走试图处理器,而是直接写到输出流)

5..servlet生命周期?

(1)加载和初始化 : servlet容器启动时,读取web.xml文件中的信息,构造指定的servlet对象(由<load-决定on-startup>).其余的servlet是在客户端第一次请求的时候创建.初始化调用的是init方法

(2)处理请求:请求到达时运行service方法,service方法运行doget()或dopost请求

(3)当服务器决定销毁实例时调用destory()方法

6.转发和重定向的区别?

转发是服务器接收请求,在内部进行跳转.重定向是服务器返回一个新的url,客户端接到302状态码用新的url 重新进行一次http请求

(1)转发在服务器完成,重定向在客户端完成

(2)转发一次http请求,重定向两次http请求

(3)转发地址栏有变化,重定向没有变化

猜你喜欢

转载自blog.csdn.net/qq_34645958/article/details/81989025
今日推荐