Java SE面试题(七)

一.Spring Bean的作用域之间有什么区别?

bean的作用域
可以通过scope属性来指定bean的作用域 ,决定这个bean是单实例还是多实例

类别说明
singleton默认值。当IOC容器一创建就会创建bean的实例,而且是单例的,每次得到的都是同一个
prototype原型的。当IOC容器一创建不再实例化该bean,每次调用getBean()方法时在实例化该bean,而且每调用一次就创建一个新的bean
request每次请求实例化一个bean 该作用域仅使用WebApplicationContext环境
session在一次会话中共享一个bean 不同的HTTPSession 使用不同的bean 该作用域仅使用WebApplicationContext环境

二.简单介绍spring常用的数据库事务传播属性和事务隔离级别?

事务的属性:原子性、隔离性、持久性、一致性
propagation:用来设置事务的传播行为(@Transactional注解 声明式事务)

事务的传播行为:一个方运行在了一个开启事务的方法中时,当前方法使用原来的事物还是开启一个新的事物(共七种)

@Transactional(propagation=Propagation.REQUIRED_NEW)
Propagation.REQUIRED:默认值,使用原来的事务
Propagation.REQUIRED_NEW:将原来的事务挂起,开启一个新的事物

isolation:用来设置事务的隔离级别
一个事务与其他事物隔离的程度成为隔离级别

脏读 不可重复读 幻读

读未提交 READ UNCOMMITTED
读已提交 READ COMMITTED
可重复度 REPEATABLE READ
串行化 SERIALIZABLE

脏读不可重复读幻读OracleMySQL
读未提交×
读已提交√ (默认)
可重复度×√ (默认)
串行化

@Transactional(propagation=Propagation.REQUIRED_NEW,isolation=Isolation.DEFAULT)

三.在springMVC中如何处理乱码问题?

web.xml里配置filter
POST乱码解决方法:

 <filter>
    <filter-name>org.springframework.web.filter.CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>org.springframework.web.filter.CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

GET乱码解决方法:
修改Tomcat的配置文件server.xml

在这个Connector标签里面添加utf-8

<Connector  URIEncoding="UTF-8">

四.SpringMVC工作流程

不管处理器方法的返回值设置为ModelAndView还是在方法的入参中传入Map、Model或者ModelMap,SpringMVC都会转换为一个ModelAndView对象
流程图

五.MyBatis中当实体类中的属性名和表中字段名不一样怎么办?

1.写sql语句时起别名

select id,last_name lastName,email from employees where id =
#{id}

2.在MyBatis的全局配置文件中开启驼峰命名规则


	<settings>
		<setting name="mapUnderscoreToCamelCase" value="true" />
	</settings>
	

3.在Mapper映射文件中使用resultMap来自定义映射规则

<select id="get EmpLoyeeById" resultMap= "myMap">
  select *from employees where id = #(id)
</select>

<resultMap type= "com.xin.mybatis.entity.Employee" id= "myMap ">
<!--映射主键-- >
<id column= "id" property="id"/>
<!--映射其他列-->
<result column= "last_ name"  property= "lastName"/>
<result column= "email " property= "email "/ >
</resultMap>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值