listener不能交给spring进行管理,需要自己new,不能注入其他对象,不能实现数据库操作。
mybatis原生
QueryWrapper<EduSubject> wrapperTwo = new QueryWrapper(); wrapperTwo.ne("parent_id", "0"); .....
业务和技术有区别的,业务是需要什么条件,输出什么结果,实现这个功能。
技术考虑的更远,包括此时的技术优化,用合适的方法,维护性,甚至小到规范问题,更细致化。
maven默认加载机制造成的问题
mybatis-plus-mapper-locations
ACID是靠什么问题来保证的?
A原子性是有undo log日志保证,它记录了需要回滚的日志信息,事务回滚时撤销已经执行成功的sql
C一致性由其他三大特性保证,程序代码要保证业务上的一致性
I隔离性由MVC来保证
D持久性由内存-redo log来保证,mysql修改数据同时在内存和redo log记录这次操作,宕机的时候可以吧redo log恢复
redis 字符串、哈希、列表、集合
长期缓存、暂时缓存
ge >= gt > le <= lt <
eq = ne!=
Spring Score以及ApplicationContext
Spring Score是什么?
对象在spring IOC容器的生命周期,对象在spring容器创建方式
作用
控制对象有效范围
分类
按配置分类:xml方式、注解方式
五种取值:
singleton
单例
比如标签对应的对象默认单例。
单例模式,无论获取多少次,都是一个对象。
prototype
多例,每次获取重新实例化
request
每次请求重新实例化
session
每个会话对象内,对象都是单例。
application
在application对象内是单例
global session
spring推出的对象,雷士session
global session只有应用在基于porlet的web应用程序中才有意义,它映射到porlet的global范围的session,如果普通的servlet的web 应用中使用了这个scope,容器会把它作为普通的session的scope对待。
新版spring官网
singleton/prototype/request/session/application/ebsocket
代码
xml方式
<bean id="peo" class="com.test.pojo.People" scope=" singleton"></bean>
注解的方式
ApplicationContext
ApplicationContext是Spring中的核心接口和容器,允许容器通过应用程序上下文环境创建、获取、管理bean。在构建容器的时候,创建对象采用的策略是立即加载的方式,即只要一读取完配置文件就立即创建配置文件中配置的对象。BeanFactory采用的是延迟加载的方式,什么时候根据id获取对象了,什么时候才真正地创建对象。
该接口具有三个常用的实现类:
1、ClassPathXmlApplicationContext:可以加载类路径下的配置文件,要求配置文件必须在类路径之下。
2、FileSystemXmlApplicationContext:可以加载磁盘中任意路径下的配置文件,要求具有访问权限。
3、AnnotationConfigApplicationContext:用于读取注解创建容器。
4、ConfigurableApplicationContext:Spring当中还有一个ConfigurableApplicationContext类,扩展于ApplicationContext, 新增加两个主要方法。refresh()和close(),让ApplicationContext具有启动、刷新和关闭上下文的能力。ApplicationContext在初始化上下文时就实例化所有的单例Bean.
5、WebApplicationContext:WebApplicationContext是专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作。
Spring 提供了两种类型的IOC容器实现:
BeanFactory:IOC容器的基本实现。
ApplicationContext:提供了更多的高级特性,是BeanFactory的子接口。
两种方式比较:
BeanFactory:BeanFactory是Spring框架的基础设施,面向Spring本身:
ApplicationContext : 面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext而非底层的BeanFactory。无论使用何种方式,配置文件是相同的。