二十道面试题每个题你能讲个十分钟恭喜你在上海至少16k(Java中级开发) (5)

Repeatable read 重复读
当廖志伟拿着工资卡去消费时,一旦系统开始读取工资卡信息(即事务开始),廖志伟的老婆就不可能对该记录进行修改,也就是廖志伟的老婆不能在此时转账。这就避免了不可重复读。廖志伟的老婆工作在银行部门,她时常通过银行内部系统查看廖志伟的信用卡消费记录。有一天,她正在查询到廖志伟当月信用卡的总消费金额(select sum(amount) from transaction where month = 本月)为80元,而廖志伟此时正好在外面胡吃海喝后在收银台买单,消费1000元,即新增了一条1000元的消费记录(insert transaction … ),并提交了事务,随后廖志伟的老婆将廖志伟当月信用卡消费的明细打印到A4纸上,却发现消费总额为1080元,廖志伟的老婆很诧异,以为出现了幻觉,幻读就这样产生了。当隔离级别设置为Repeatable read时,可以避免不可重复读,但会出现幻读。注:MySQL的默认隔离级别就是Repeatable read。

Serializable 序列化
Serializable是最高的事务隔离级别,同时代价也花费最高,性能很低,一般很少使用,在该级别下,事务顺序执行,不仅可以避免脏读、不可重复读,还避免了幻像读。

Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点

Spring注解:

声明bean的注解  
@Component   组件,没有明确的角色  
@Service   在业务逻辑层使用(service层)  
@Repository   在数据访问层使用(dao层)  
@Controller   在展现层使用,控制器的声明(C)  
注入bean的注解  
@Autowired   由Spring提供  
@Resource   由JSR-250提供  
java配置类相关注解  
@Bean   注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上)  
@Configuration   声明当前类为配置类,其中内部组合了@Component注解,表明这个类是一个bean(类上)  
@ComponentScan   用于对Component进行扫描,相当于xml中的(类上)  
切面(AOP)相关注解  
@Aspect   声明一个切面(类上) 使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。  
@After   在方法执行之后执行(方法上) @Before 在方法执行之前执行(方法上) @Around 在方法执行之前与之后执行(方法上)  
@PointCut   声明切点 在java配置类中使用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持(类上)  
@Value注解  
@Value 为属性注入值   注入操作系统属性@Value("#{systemProperties[\'os.name\']}")String osName;
注入表达式结果@Value("#{ T(java.lang.Math).random() * 100 }") String randomNumber;
注入其它bean属性@Value("#{domeClass.name}")String name;
注入文件资源@Value("classpath:com/hgs/hello/test.txt")String Resource file;
注入网站资源@Value("http://www.cznovel.com")Resource url;
注入配置文件Value("${book.name}")String bookName;
 
异步相关  
@EnableAsync   配置类中,通过此注解开启对异步任务的支持,叙事性AsyncConfigurer接口(类上)  
@Async   在实际执行的bean方法使用该注解来申明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)  
定时任务相关  
@EnableScheduling   在配置类上使用,开启计划任务的支持(类上)  
@Scheduled   来申明这是一个任务,包括cron,fixDelay,fixRate等类型(方法上,需先开启计划任务的支持)  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgdspf.html