Spring boot 、Vue学习体会

近期集中学习了Spring boot 、Vue等技术,学习过程也是不断碰壁,总的来说自认为有些涨进,抓住核心、深入关键、逐步剖析。

两个技术分别负责后台和前端,学习后一个感受,两个技术内部深层次逻辑有相似性,均是做到了框架管理对象、管理生命周期,简化操作。

1、管理对象

spring boot 通过自动注入(@Compont)等,将对象(组件)注入到框架(容器)中,在Service层可直接使用对象(@Autowire)

vue通过将标签、数据、方法等统一管理,在内存中实现所有对象的统一管理。

 

2、管理生命周期

spring boot 实现对象的生命周期管理,提高内存使用效率,提高代码执行速度。

vue 通过一系列钩子函数,实现对各个阶段的管理。

 

3、简化操作

spring boot与mybatis等工具集成,简化数据库操作流程,提高安全性。

vue 通过数据双向绑定,避免dom操作,使代码简洁,代码效果较好。

 

SpringBoot单实例与线程安全总结

•Spring中DAO和Service都是以单实例的bean形式存在,Spring通过ThreadLocal类将有状态的变量(例如数据库连接Connection)本地线程化,从而做到多线程状况下的安全。在一次请求响应的处理线程中, 该线程贯通展示、服务、数据持久化三层,通过ThreadLocal使得所有关联的对象引用到的都是同一个变量。
•在事务属性为REQUIRED时,在相同线程中进行相互嵌套调用的事务方法工作于相同的事务中。如果互相嵌套调用的事务方法工作在不同线程中,则不同线程下的事务方法工作在独立的事务中。
•程序只要使用SpringDAO模板,例如JdbcTemplate进行数据访问,一定没有数据库连接泄露问题!如果程序中显式的获取了数据连接Connection,则需要手工关闭它,否则就会泄露!
•当Spring事务方法运行时,就产生一个事务上下文,它在本事务执行线程中对同一个数据源绑定了一个唯一的数据连接,所有被该事务上下文传播的方法都共享这个连接。要获取这个连接,如要使用Spirng的资源获取工具类DataSourceUtils。
•事务管理上下文就好比一个盒子,所有的事务都放在里面。如果在某个事务方法中开启一个新线程,新线程中执行另一个事务方法,则由上面第二条可知这两个方法运行于两个独立的事务中,但是:如果使用DataSourcesUtils,则新线程中的方法可以从事务上下文中获取原线程中的数据连接!

 

posted @ 2023-03-28 16:21  小德cyj  阅读(267)  评论(0编辑  收藏  举报