
Spring
文章平均质量分 58
Spring笔记
龙茶清欢
人生如尘土飘逝。追忆似水流年,回忆让人伤感但却又有前行的力量。每天都是一个礼物,让我们在回忆与期待中承受每天的苦楚,时间漫漫,长大后的我却找不到生活的意义。
展开
-
@NestedConfigurationProperty注解的作用
此注释与实际绑定过程无关,但它被spring-boot配置处理器用作一个提示,表明字段未绑定为单个值。指定此选项后,将为字段创建嵌套组,并获取其类型。修饰的对象中,如果有成员属性被@NestedConfigurationProperty修饰,那么这个属性将不再是可以绑定的单个值,而是作为一个属性嵌套组。这个类,如果其中的属性都不加@NestedConfigurationProperty注解,那么只能配置到。而加了该注解,那么配置层级可以映射到 admin 和 executor 中的内部成员属性。原创 2023-02-15 23:18:01 · 2043 阅读 · 0 评论 -
定时任务使用总结
修改外部映射的配置文件application.properties中的数据源地址配置。修改数据库的用户名和密码并同时开启外部访问权限。docker安装xxl-job-admin。默认账号密码:admin、123456。原创 2023-02-15 21:15:33 · 1625 阅读 · 0 评论 -
还在使用System.currentTimeMillis()统计代码耗时吗?
有时我们在做开发的时候需要记录每个任务执行的时间,或者记录一段代码执行的时间,比较常见的方法就是通过System.currentTimeMillis()分别获取执行前后执行后的两次时间,然后做减法得出执行时间,这样做虽然也能达到效果,但如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间作进一步控制,则需要在程序中修改很多地方。目前spring提供了一个StopWatch类可以做类似任务时间控制,也就是封装了一个对开始时间和结束时间记录的工具。 统计代码执行总耗时: 输出执行一个任务的耗时:原创 2022-07-12 00:46:46 · 542 阅读 · 0 评论 -
springboot中的@Conditional注解
springboot中使用@Configuration注解完成一个配置类的配置,被该注解标注的类会在程序启动时自动的加载到IOC容器,但如果我们想通过一些条件来控制被@Configuraion注解标注的配置类的生效与否,可以使用springboot提供的@Conditional注解来对条件进行控制,通过该注解指定哪些条件下才能自动加载配置,如果不满足条件,则不加载。以下是常见的@Conditional注解的类型:条件是:类路径下,如果存在指定的类,则该配置类生效。类路径即classpath,也就是src路径原创 2022-07-11 00:29:13 · 1230 阅读 · 0 评论 -
通过ApplicationListener监听多个事件
ApplicationListener接口拥有一个子接口SmartApplicationListener,springboot中有一些重要的定制化监听器都是直接或间接的通过实现SmartApplicationListener接口来实现的,这个接口中拥有一个supportsEventType抽象方法,源码如下:该方法主要通过调用Class类中的isAssignableFrom来判断监听的事件类是否和参数传递的事件类相同或者是参数事件类的子类,如果是则返回true并监听,反之则返回false,不监听。所以原创 2022-06-26 11:59:50 · 1323 阅读 · 2 评论 -
BeanFactoryPostProcessor后置处理器
在springboot出现之前,spring一般都是通过读取我们编写的xml文件来创建Bean的,在标签中我们需要定义Bean的类型以及属性等有关于描述Bean的信息,BeanFactory就是通过这些信息来定义一个Bean的,在Bean初始化的过程中,Bean的属性都会被赋予对应类型的默认值,比如,String类型属性默认值就是null,一般引用类型的默认值都是null。那有没有办法不让Bean的某个属性不去默认值而取我们自定义的值呢?答案是BeanFactoryPostProcessor后置...原创 2022-06-26 11:56:24 · 255 阅读 · 0 评论 -
ApplicationListener监听器
ApplicationListener监听器本身是一个函数式接口,监听对象为ApplicationEvent事件的子类,ApplicationEvent事件本身是一个抽象类,它拥有各式各样的子类,这些子类就是定制化的事件,专门用于特定的场景。ApplicationEvent事件继承EventObject这个事件本体,EventObject事件本体是所有事件的基础,EventObject事件本体拥有一个这样一个Object类型的source属性,用于存放事件。那这个事件数据是如何传递的呢?通过观察源码,我们发原创 2022-06-26 11:53:28 · 2314 阅读 · 0 评论 -
EventPublishingRunListener监听器
EventPublishingRunListener是springboot中唯一一个实现了SpringApplicationRunListener接口的监听器,其主要作用是,根据springboot程序启动过程的不同阶段发布对应的事件,进行对应阶段的相关操作。源码如下:...原创 2022-06-26 11:39:07 · 764 阅读 · 0 评论 -
SpringApplicationRunListener监听器
SpringApplicationRunListener监听器是springboot提供的一个用于监听springboot应用程序启动过程的监听器接口,里面有7个抽象方法,分别代表springboot启动过程中的不同阶段,例如,开始启动、环境准备、容器准备、容器加载、启动完成、持续运行、启动失败源码如下:...原创 2022-06-26 11:36:12 · 288 阅读 · 0 评论 -
从配置文件中根据前缀批量注入属性之@ConfigurationProperties
1、@ConfigurationProperties在我们平时做项目时,肯定遇到过需要从yml或者properties配置文件中获取属性值得情况,一般我们都会用@Value("$(xxx.xxx)")注解来完成,当注入的属性个数不多时,使用@Value注解确实是一个不错的办法,但当注入的属性超过5个时,继续使用@Value就会使类显得臃肿,想象一下,当你看到十几个@Value注入时,是不是觉得不太美观,像改造一下呢?那有什么办法可以解决这一问题呢?答案是:@ConfigurationProperties 注原创 2022-06-05 15:44:42 · 1602 阅读 · 1 评论 -
springboot项目如何将项目外部配置类纳入spring ioc容器
项目外部指的是非SpringBootApplication应用主程序类所在同层级包下的类,当我们启动一个SpringBootApplication应用主程时,应用程序会自动扫描该类同层级包下的所有类,并将带有@Configuation、@Component以及@Component的扩展注解(@Controller、@Service、@Respistory等等)注解的类注册Bean,并纳入Spring Ioc容器,此外配置类中被@Bean标注的方法也会被注册为Bean,并纳入Spring Ioc容器那我们如何原创 2022-06-05 12:26:44 · 1260 阅读 · 0 评论 -
Spring Aop的理解都个人看法
Spring Aop的理解都个人看法原创 2022-05-07 00:27:19 · 329 阅读 · 0 评论