
springboot
文章平均质量分 81
springboot相关内容学习和分享
小董亮出你的8块腹肌吧!
专注后端技术分享!!!
展开
-
springboot之源码分析文章系列
springboot如何自定义starterspringboot中常用的注解springboot如何通过profile加载不同beanidea导入spring boot源码过程分析通过helloworld程序分析springboot的jar包启动过程springboot的启动过程详细分析springboot之自动配置原理分析springboot对条件接口Condition的扩展和使用springboot过滤不需要的自动配置类过程分析...原创 2021-05-30 18:52:53 · 669 阅读 · 1 评论 -
springboot之项目搭建并say hi(springboot helloworld)
本文看下如何搭建一个最简单的支持http接口的hello程序。原创 2024-08-22 16:26:18 · 458 阅读 · 0 评论 -
spring之AutoConfigurationMetadataLoader分析
写在前面关于springboot系列详细分析,可以参考这里。在这篇文章中,我们分析了springboot自动配置的原理,其中有AutoConfigurationMetadataLoader类,负责提前从配置文件中加载每个自动配置类所要满足的条件注解信息,但是并没有详细讲解这个加载过程,本文作为补充。...原创 2021-06-30 10:24:01 · 534 阅读 · 0 评论 -
springboot之BeanDefinitionLoader分析
写在前面关于springboot系列详细分析,可以参考这里。原创 2021-06-28 10:14:39 · 638 阅读 · 0 评论 -
springboot之@ConfigurationProperties分析
写在前面关于springboot系列详细分析,可以参考这里。原创 2021-06-26 09:42:05 · 4332 阅读 · 0 评论 -
springboot之日志配置分析
1:日志分析1.1:默认使用的日志框架logback。一般项目中不需要修改,使用默认即可。1.2:日志的格式默认的输出日志信息可能如下:2021-06-20 13:45:17.410 INFO 13724 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8083 (http) with context path ''2021-06-20 13:45:17.41原创 2021-06-20 14:00:03 · 3705 阅读 · 0 评论 -
springboot之生成随机值
1:作用用于生成随机值,比如生成随机的字符串,数字等,如果是在项目中有这种需求的话可以考虑使用这种方式来实现。2:例子2.1:定义bean@Componentpublic class MyBean implements CommandLineRunner { @Value("${random.value}") private String mySecret; @Value("${my.number}") private Integer myNumber;原创 2021-06-15 14:34:56 · 4587 阅读 · 0 评论 -
springboot之加载application.properties/yml过程分析
sss原创 2021-06-11 18:12:03 · 718 阅读 · 0 评论 -
springboot之ApplicationListener
1:spring中的events我们知道,事件处理首先是事件,对于事件,spring定义了抽象类org.springframework.context.ApplicationEvent,实现了jdk的接口java.util.EventObject,源码如下:// 该抽象类需要被具体的事件实现才又意义,这也是设置为abstrac的原因public abstract class ApplicationEvent extends EventObject { // 事件发生的时间点 private fi原创 2021-06-08 18:21:48 · 4663 阅读 · 1 评论 -
springboot之ApplicationContextInitializer分析
sss原创 2021-06-07 06:33:17 · 1442 阅读 · 1 评论 -
springboot之IOC容器ServletWebServerApplicationContext分析
1:web.xml是怎么没的?原创 2021-05-31 16:41:34 · 3773 阅读 · 1 评论 -
springboot之自动配置原理分析
写在前面在Java中各种框架,中间件,非常非常多,在我们的项目中不可能默认配置所有的,那么对于自动配置而言的第一个问题就是满足了什么条件,才去自动配置呢?,先不管这个条件是怎么样的,假设这个条件已经得到了满足,接下来就有第二个问题应该创建哪些bean呢?,继续,假设创建哪些bean也确定了,那么,必定某些bean有一些属性值是需要动态设置的,因此,第三个问题就是bean的属性值来源在哪里?。总结如下:满足了什么条件,才去自动配置呢?应该创建哪些bean呢?bean的属性值来源在哪里?我们就从这三原创 2021-05-13 15:56:16 · 1155 阅读 · 2 评论 -
springboot过滤不需要的自动配置类过程分析
写在前面入口在org.springframework.boot.autoconfigure.AutoConfigurationImportSelector#filter原创 2021-02-05 19:01:19 · 1944 阅读 · 7 评论 -
springboot对条件接口Condition的扩展和使用
写在前面对于Condition的基础使用,可以参考这里。原创 2021-02-02 18:34:49 · 2231 阅读 · 0 评论 -
springboot如何通过profile加载不同bean
1:定义bean类@Configurationpublic class ProfileTestConfiguration { @Bean @Profile(value = "dev") public MyProfileBean devProfileBean() { return new MyProfileBean("dev profile"); } @Bean @Profile(value = "test") public M原创 2021-01-31 17:15:07 · 2110 阅读 · 0 评论 -
springboot中常用的注解
1:@Inherited该注解的用法是:如果某个类使用了被@Inherited标注的注解,则该类的子类会自动继承该注解,及@Inherited的作用就是标记注解是否是可被继承的。分析如下:该注解源码如下:java.lang.annotation.Inherited@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Inherited {}从原创 2021-01-25 19:13:02 · 535 阅读 · 0 评论 -
在springboot中使用文件上传
1:springMVC文件上传介绍在springMVC的9大组件中,其中的一个就是MultipartResolver,即文件上传解析组件,该组件当是文件上传请求时会将HttpServletRequest类,解析生成为MultipartHttpServletRequest类,该类在继承了HttpServletRequest的同时,还实现了接口MultipartRequest,源码如下:public interface MultipartRequest { Iterator<String>原创 2021-01-24 20:56:27 · 448 阅读 · 0 评论 -
springboot的启动过程详细分析
入口入口很简单,就是我们的main程序,可能如下:@SpringBootApplicationpublic class HelloWorldMainApplication { public static void main(String[] args) throws URISyntaxException, IOException { SpringApplication.run(HelloWorldMainApplication.class, args); }}好原创 2020-12-29 12:08:51 · 1784 阅读 · 4 评论 -
通过helloworld程序分析springboot的jar包启动过程
1:创建helloworld程序1.1:创建maven项目file->new->project,然后选择左侧的maven,选择jdk的版本为8,直接next创建。1.2:配置依赖<packaging>jar</packaging><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-原创 2020-12-03 19:13:25 · 1616 阅读 · 0 评论 -
idea导入spring boot源码过程分析
写在前面环境win10(其他应该也可),idea2020-2(最好保持一致),jdk8+,maven3.5.4(最好保持一致)其他最好准备翻墙软件,因为可能部分依赖无法下载。1:下载源码从这里fork代码到自己的仓库中,fork的目的是为了可以直接方便的修改源代码,如果发现从git下载代码太慢,也可以将代码导入到gitlab中,然后再进行下载。大概导入到gitlab中过程可以参考以下几张图:完毕之后就可以git clone代码了。2:编译2.1:切换分支这里我们使用tag:v原创 2020-11-20 11:40:56 · 1389 阅读 · 2 评论 -
springboot整合swagger小栗子
1:POM<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.原创 2020-10-22 14:32:03 · 136 阅读 · 0 评论 -
springboot整合jpa小栗子
1:POM<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0原创 2020-10-21 19:16:19 · 123 阅读 · 1 评论 -
springboot通过profile设置配置文件
写在前面本文直接在以后springboot项目基础上测试,关于如何创建springboot项目,点击这里。1:格式说明application-{profile}.yml,或者是application-{profile}.properties也可以。2:通过修改配置文件2.1:准备配置文件application.propertiesapplication-dev.propertiesapplication-test.properties其中application-test.properti原创 2020-10-21 14:58:40 · 985 阅读 · 0 评论 -
springboot的入门小栗子
1:创建项目new->project然后选择左侧Spring Initizlizr:录入gav等信息:然后next,springboot选择2.2.10版本,依赖选择spring-web:然后next->finish,最终项目结构如下:原创 2020-10-21 10:55:50 · 210 阅读 · 0 评论 -
springboot优化JVM参数
写在前面参考的这里,此处只是为了记录,以防在工作中需要使用到。1:在idea中配置1.1:参数-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC11.2:设置方式在Configuration->VM options中设置即可,如下图:2:启动jar时指定java -jar -原创 2020-10-17 16:34:01 · 1624 阅读 · 0 评论 -
springboot如何自定义starter
1:准备测试starter1.1:pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org原创 2020-09-30 16:39:43 · 613 阅读 · 0 评论 -
springboot中使用servlet原生相关功能
写在前面本文介绍在springboot中使用servlet原生相关功能的方式,主要有两种:注解方式这种方式依赖于@WebServlet,@WebFilter,@WebListner等注解,需要注意,这些注意是在servlet3.0为了实现无web.xm(注意:这是个人根据学习的猜测!!!)正式引入的,因此想要使用的话必须是servlet3.0及以上版本。bean configuration方式这种方式通过springboot的XXXBean完成相关组件的注册。好的,那我们就正式开始吧!!!原创 2020-09-29 16:06:45 · 607 阅读 · 0 评论 -
定义多数据源springboot的starter
1:思路分析1.1:切换后的数据源信息的存储因为每个线程之间数据源信息需要线程隔离存储,因此存储工作由java.lang.ThreadLocal完成,当然如果你有多个变量需要线程隔离存储,那么定义多个ThreadLocal就可以了,本例中只会定义一个。1.2:数据库连接池我们操作数据库使用的是mybatis-spring-boot-starter,该starter内部使用的是HicariCp数据库连接池。1.3:如何让mybatis使用切换的数据源我们只需要继承com.zaxxer.hikari原创 2020-10-01 18:47:43 · 926 阅读 · 0 评论