合集-Spring Boot
摘要:一、Class.forName("").newInstance(); 1. Class.forName( )静态方法的目的是为了动态加载类(初始化类)。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动
阅读全文
摘要:陷阱一:不要只用readOnly=true @Transactional(readOnly = true) public TradeData getTrade(long tradeId) throws Exception { return em.find(TradeData.class, trade
阅读全文
摘要:经过我之前的实践,可以看出 NESTED事务申明在调用者上会新建一个独立事务。申明在被调用者上,若调用者存在事务则加入调用者事务。调用者不存在事务则新建一个独立事务。 这个功能好像和spring默认的事务传播行为REQUIRED一样的? 不,它的功能可是比REQUIRED要强大! 我来通过实验证明N
阅读全文
摘要:一、什么是循环依赖 多个bean之间相互依赖,形成了一个闭环。 比如:A依赖于B、B依赖于c、c依赖于A 通常来说,如果问spring容器内部如何解决循环依赖, 一定是指默认的单例Bean中,属性互相引用的场景。也就是说,Spring的循环依赖,是Spring容器注入时候出现的问题。 二、Sprin
阅读全文
摘要:一、自动配置原理 (一)引导加载自动配置类 @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM,classes = {T
阅读全文
摘要:List<SystemCodeDataDTO> systemCodeDataDTOList = Optional.ofNullable(data).map(JSON::parseArray).map(d -> d.toJavaList(SystemCodeDataDTO.class)) .map(L
阅读全文
摘要:1、二者的区别 浅拷贝:在拷贝一个对象时,对对象的基本数据类型的成员变量进行拷贝,但对引用类型的成员变量只进行引用的传递,并没有创建一个新的对象,当对引用类型的内容修改会影响被拷贝的对象。 深拷贝:在拷贝一个对象时,除了对基本数据类型的成员变量进行拷贝,对引用类型的成员变量进行拷贝时,创建一个新的对
阅读全文
摘要:相关接口的分类 分类 接口 调用时间 工厂后处理器接口 BeanFactoryPostProcessor 容器创建完毕,装配Bean源后立即调用 容器后处理器接口 InstantiationAwareBeanPostProcessor 分别在调用构造之前,注入属性之前,实例化完成时调用 容器后处理器
阅读全文
摘要:1. List哪些实现类 Java List一共三个实现类分别是ArrayList、Vector和LinkedList。 (1) ArrayList是最常见用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,
阅读全文
摘要:1. 如何将1千万个数据加到List中 ArraysList可以存下,但是效率低,可以使用LinkedList。 2. 两个1千万List如何找到,A中有,但B中没有的元素。 可以将List转成HashSet,使用HashSet的retainAll方法。retainAll作用是保留集合中与另一个集合
阅读全文
摘要:JDK动态代理:是Java标准库提供的一种动态代理实现方式,基于接口生成代理对象。使用Proxy类和InvocationHandler接口来创建代理对象,被代理的类必须实现接口。 CGlib动态代理:使用CGLib库实现,通过生成目标类的子类来创建代理对象。不需要目标类实现接口,可以直接代理普通类。
阅读全文
摘要:SpringBoot自动化装配中,如果有两个AutoConfiguration,A依赖B,这时ConditionalOnBean如何保证顺序使需要的Bean会提前加载 使用@AutoConfigureAfter, 当几个组件加载完成后,再加载当前组件,如:Nacos服务注册自动配置类加载前需要加载:
阅读全文
摘要:集合 复制到 集合 public static <T> List copyBeanList(List resourceList, Class<T> target) { List targetList = new LinkedList<>(); if (null == resourceList ||
阅读全文
摘要:一、数据库引擎不支持事务 这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。从 MySQL 5.5.5 开始的默认存储引擎是:InnoDB,之前默认的都是:MyISAM,所以这点要值得注意,底层引擎不支持事务再
阅读全文
摘要:private ResultMsg stopSameForm(HttpServletRequest request, String user, String urlPath,String requestBody){ try{ urlPath=urlPath.toLowerCase(); if(!(u
阅读全文
摘要:1、类注解 /** * 需要动态查询CodeTable数据字典时,在类上配置该注解 */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface CodeAnnotatio
阅读全文