摘要:
wait和sleep的区别 简说:wait释放🔒,sleep不释放🔒 例子:买票过程中,当程序进行上锁后 sleep控制下的线程,买票是一一完成,当程序休眠后,sleep不会释放🔒,购票者和售票完成后才能继续后面购票操作,顺序执行。 wait控制下的线程,购票是多人同时进行,当程序等待时,wa 阅读全文
摘要:
每一个切面都有一个默认的优先级(默认值为Integer的最大值) @Order(1)通过这个注解设置一个正整数数值,数值越小,优先级越高 @Component @Aspect//将当前组件标识为切面 @Order(1) public class ValidateAspect { //@Before( 阅读全文
摘要:
AOP注意事项 切面类和目标类都需要交给IOC容器管理切面类必须通过@Aspect注解标识为一个切面在spring的配置文件中设置<aop:aspectj-autoproxy/>开启基于注解的AOP功能 <!--扫描路径--> <contest:component-scan base-package 阅读全文
摘要:
概念:二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标 方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不属于目标方法核心逻辑 的代码从目标方法中剥离出来——解耦。调用目标方法时先调用代理对象的方法,减少对目标方法的调 用和打扰,同时让附 阅读全文
摘要:
* @Component:将类标识为普通组件* @Controller:将类标识为控制层组件* @Service:将类标识为业务层组件* @Repository:将类标识为持久层组件(dao层)* (4个的效果都是一样,但为代码可读性,不能乱标) context:exclude-filter:排除扫 阅读全文
摘要:
* 自动装配:* 根据指定的策略,在IOC容器中匹配某个bean,* 自动为bean中的类类型的属性或者接口类型的属性赋值* 可以通过bean标签中的autowire属性设置自动装配的策略** 自动装配的策略:* 1.no,default:表示不装配,* 即bean中的属性不会自动匹配某个bean为 阅读全文
摘要:
spring框架中 获取bean时 1.NoUniqueBeanDefinitionException:没有一个唯一的bean被发现异常 原因:ioc中有多个类型匹配的bean 2NoSuchBeanDefinitionException::没有足够的bean被发现异常 原因:ioc中没有与之匹配的 阅读全文
摘要:
bean生命周期简易版 * 生命周期:1、创建对象(实例化)* 生命周期:2、依赖注入(为属性赋值)* 生命周期:3、初始化(需要通过bean中init-method属性指定初始化方法)* 生命周期:5、销毁(ioc容器关闭时销毁* 需要通过bean的destroy-method属性指定销毁方法) 阅读全文
摘要:
1.通过List标签在property标签中直接进行赋值 <property name="students"> <list> <ref bean="studentOne"></ref> <ref bean="studentTwo"></ref> </list> </property> 2.通过配置一 阅读全文
摘要:
1 ref:引用IOC容器中的某个bean的id <property name="clazz" ref="clazzOne"></property> <bean id="clazzOne" class="com.javasm.spring.pojo.Clazz"> <property name="c 阅读全文
摘要:
字面量赋值:之间调用value赋值就行赋值null:<property name="gender" ><null/></property>特殊符号赋值: 1.<:< >:> 2.CDATA节其中的内容会原样解析(通过输入CD快捷生成) 放在property的子标签value中<prope 阅读全文
摘要:
* 获取bean的三种方式:* 1)根据bean的id获取* 2)根据bean的类型获取(最常用)* 注意:* 根据类型获取bean时,* 要求IOC容器中有且只有一个类型匹配的bean* 若没有一个类型匹配的bean,此时抛出异常:NoSuchBeanDefinitionException* 若有 阅读全文
摘要:
<cache>中相关属性 在mapper配置文件中添加的cache标签可以设置一些属性: ①eviction属性:缓存回收策略,默认的是 LRU。 LRU(Least Recently Used) – 最近最少使用的:移除最长时间不被使用的对象。 FIFO(First in First out) – 阅读全文
摘要:
MyBatis的二级缓存(实现需要4个条件)* MyBatis的一级缓存是SqlSessionFactory级别的,* 即通过同一个SqlSessionFactory所获取的SqlSession对象* 查询的数据会被缓存,在通过同一个SqlSessionFactory所获取的SqlSession* 阅读全文
摘要:
MyBatis的一级缓存:(默认开启)MyBatis的一级缓存是SqlSession级别的即通过同一个SqlSession查询的数据会被缓存于SqlSession的缓存中再次使用同一条SqlSession查询同一条数据会从缓存中获取(增加了查询效率) 使一级缓存失效的4种情况:* 1) 不同的Sql 阅读全文
摘要:
可以记录一段sql,在需要用的地方使用include标签进行引用优点:(可设置*避免了*传入mysql中再次被解析,从而加快执行效率) 设置sql片段(代替*) <sql id="empColumns"> emp_id,emp_name,age,gender,dept_id </sql> 引用sql 阅读全文
摘要:
可分别用数组或集合进行批量添加和删除 collection:设置要循环的数组或集合item:用一个字符串表示数组或集合中的每一个数据separator:设置每次循环的数据之间的分隔符(会在设置的分隔符前后加 空格)open:循环的所有内容以什么开始(仅适用于批量删除)close:循环的所以内容以什么 阅读全文
摘要:
动态SQL1.if 通过test属性中的表达式判断标签中的内容是否有效(是否会拼接到sql中) <select id="getEmpByConditionOne" resultType="Emp"> select * from t_emp where 1=1 <if test="empName!=n 阅读全文
摘要:
处理一对多的映射关系:1.collection标签类似于association的模板模板 <resultMap id="deptAndEmpResultMap" type="Dept"> <id column="dept_id" property="deptId"></id> <result col 阅读全文
摘要:
优点:可以实现延迟加载,减少当前内存的消耗 开启延迟加载延迟加载与两个全局配置有关(放在mybatis-config中的settings(全局配置)里面) 如果只是要得到延迟加载的效果,其实将lazyLoadingEnabled开启就能够做到1.lazyLoadingEnabled(默认关闭) <s 阅读全文