
SpringBoot
文章平均质量分 90
程序猿进阶
要做就做第一,就算结果不是第一,也会是一个好成绩。 加油!我的未来不是梦。
展开
-
Spring Boot应用关闭分析
本文挖掘了Spring Boot的关闭方式,并列举了关闭方式,从原理、源码的角度阐述了Spring Boot的关闭代码及扩展点。同时,额外说明了一些系统特性 和原理,比如,程序退出码和信号机制。原创 2024-12-20 05:30:00 · 14174 阅读 · 108 评论 -
Spring boot启动原理及相关组件
ConfigurationClassPostProcessor的优先级为最高,它会对项目中的@Configuration注解修饰的类(@Component、@ComponentScan、@Import、@ImportResource修饰的类也会被处理)进行解析,解析完成之后把这些bean注册到BeanFactory中。在github里,我把Spring Boot应用启动的拓展组件(自定义的应用初始器、监听器、事件、ApplicationRunner)都写了例子,可参照阅读。原创 2024-12-19 05:30:00 · 11578 阅读 · 85 评论 -
SpringBoot 新特性
新增了一个自动配置注解 @AutoConfiguration,用来代替之前的 @Configuration,用于标识新自动配置注册文件中的顶级自动配置类,由 @AutoConfiguration 注解嵌套、导入进来的其他配置类可以继续使用 @Configuration 注解。Spring Boot 3.0 的发布,其最低要求 Java 17,并向上兼容支持 Java 19,Spring Boot 3.1 可以支持 Java 20 了,因为前段时间 Java 20 发布了。原创 2024-12-18 05:30:00 · 8137 阅读 · 70 评论 -
SpringBoot3 升级介绍
Springboot是Spring家族中的一个框架,它是用来简单应用程序的创建和开发过程,化繁为简,简化SSM(SpringMVC + Spring + MyBatis)框架的配置。比如说在使用SSM框架开发的时候,我们需要配置web.xml,配置spring,配置mybatis,并将它们整合到一起,而是用Springboot就不同了,它采用了大量的默认配置来简化这些文件的配置过程。原创 2024-12-17 05:30:00 · 9813 阅读 · 132 评论 -
SpringBoot 整合 Avro 与 Kafka
优质博文:IT-BLOG-CN【需求】:生产者发送数据至 kafka 序列化使用 Avro,消费者通过 Avro 进行反序列化,并将数据通过 MyBatisPlus 存入数据库。【1】Apache Avro 1.8;【2】Spring Kafka 1.2;【3】Spring Boot 1.5;【4】Maven 3.5;二、Avro 文件【1】Avro 依赖于由使用JSON定义的原始类型组成的架构。对于此示例,我们将使用Apache Avro入门指南中的“用户”模式,如下所示。该模式存储在src / ma原创 2024-12-02 00:15:00 · 19783 阅读 · 125 评论 -
SpringBoot——数据访问
对于数据访问层,无论是 SQL 还是 NoSQL,SpringBoot 默认采用整合 Spring Data 的方式进行统一处理,添加大量自动配置,屏蔽了很多设置。引入各种 xxxTemplate,xxxRepository 来简化我们对数据访问层的操作。对我们来说只需要进行简单的设置即可。原创 2024-05-29 05:00:00 · 1563 阅读 · 25 评论 -
SpringBoot——嵌入式 Servlet容器
前言: 在环境下,默认使用的是作为嵌入式的容器;【1】修改和相关的配置(实现了)例如:修改端口号☞ 我们也可以进入所属的对象中,发现其他可修改的参数等等,如下:【2】编写一个:嵌入式的 Servlet容器的定制器,来修改 Servlet容器的配置。其实1中的 ServerProperties也是实现了 EmbeddedServletContainerCustomizer。xxxCustomizer 帮组我们进行定制配置。二、注册Servlet三大组件【Servlet、Filter、Listener】原创 2023-12-04 22:18:35 · 3164 阅读 · 40 评论 -
SpringBoot——Quartz 定时任务
⑦、W:该字符只能出现在日期域中,表示离该日期最近的工作日,例如 15W:表示离该月15号最近的工作日,如果15号是星期六则匹配星期五 14号。L在日期字段表示月份的最后一天,如一月的31,二月的28等,如果在星期域中表示星期六(7),但是如果L出现在星期字段里,而且前面有一个数值 X,则表示这个月的最后 X 天,例如:6L表示该月的最后星期五;⑤、斜杠(/):x/y 表示一个等步长序列,x为起始值,y为增量步长值,例如秒中使用 0/2 表示从0秒开始,没过2秒执行一次。如6#3:表示当月的第三个星期五。原创 2023-12-01 23:00:38 · 5184 阅读 · 52 评论 -
SpringBoot——Spring Security 框架
是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的 Bean,充分利用了Spring IoCDI(控制反转DI依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。原创 2023-11-30 22:49:46 · 2414 阅读 · 59 评论 -
SpringBoot——Swagger2 接口规范
如今,REST和微服务已经有了很大的发展势头。但是,REST规范中并没有提供一种规范来编写我们的对外REST接口API文档。每个人都在用自己的方式记录api文档,因此没有一种标准规范能够让我们很容易的理解和使用该接口。我们需要一个共同的规范和统一的工具来解决文档的难易理解文档的混乱格式。Swagger(在谷歌、IBM、微软等公司的支持下)做了一个公共的文档风格来填补上述问题。在本博客中,我们将会学习怎么使用Swagger的Swagger2注解去生成REST API文档。Swagger(现在是“开放API。原创 2023-11-29 22:15:41 · 2388 阅读 · 61 评论 -
SpringBoot——模板引擎及原理
语法文档:https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.pdf。有值时,显示 hello获取到的值,如果单独只访问 success.html时,只显示前端页面的内容 “这是成功页面” 能够非常友好的结合前后端进行编程。模板是为了将显示与数据分离,模板技术多种多样,但其本质都是将模板文件和数据通过模板引擎生成最终的。▶ th:include:将被引入的片段的内容包含进这个标签中。的语法提示,不导入也可以,只是么有语法提示了。原创 2023-11-28 22:30:58 · 2563 阅读 · 29 评论 -
SpringBoot——国际化
【4】去页面获取国际化值(红色部分,国际化用#{})(链接用@{表示}绿色部分):效果:根据浏览器语言的设置切换国际化。【6】当点击页面 “中文” or “English” 时切换中英文,页面参照4)信息。系统就会自动识别到是配置国际化。就会切换到国际化视图,可以右键。【5】浏览器切换,能够实现国际化的原理:国际化。自动配置好了管理国际化资源配置文件的组件;【2】如果有中文,需要设置编码格式。国际化默认配置文件,同时创建。【1】编写国际化配置文件;【7】将自己写的类,加入到。容器中,方法的名字必须是。原创 2023-11-27 22:46:54 · 4150 阅读 · 56 评论 -
SpringBoot——自定义start
就按照这个Mybatis的格式,自己写一个redis的start由于是指定入口的我们可以放在最后写。下面创建一个普通的springboot工程。添加注解和前缀redis。之后我们就可以在properties或yml中 使用指定参数了;//省略了get set 方法添加配置类注解 @Configuration 和加载条件,以及 @EnableConfigurationProperties(RedisProperties.class) 引入属性类,注入到 IOC 容器中。原创 2023-11-26 21:17:58 · 2553 阅读 · 69 评论 -
SpringBoot——LiteFlow引擎框架
LiteFlow是一个轻量且强大的国产规则引擎框架,可用于复杂的组件化业务的编排领域。帮助系统变得更加丝滑且灵活。利用LiteFlow,你可以将瀑布流式的代码,转变成以组件为核心概念的代码结构,这种结构的好处是可以任意编排,组件与组件之间是解耦的,组件可以用脚本来定义,组件之间的流转全靠规则来驱动。LiteFlow拥有开源规则引擎最为简单的DSL语法。LiteFlow官网LiteFlow于2020年正式开源,2021年获得开源中国年度最受欢迎开源软件殊荣。于2022年获得Gitee最有价值开源项目GVP。原创 2023-11-26 13:01:58 · 6199 阅读 · 35 评论 -
SpringBoot——配置及原理
我们也可以通过 spring.config.location 来改变默认配置(项目打包成功以后,我们可以使用命令行参数的形式,启动项目来指定配置文件的新位置;【1】字面量:普通的值(数字、字符串、布尔),字符串默认是不用加上单引号或者双引号,但也可以加,但是有区别:双引号,不会转义字符串里面的特殊字符,特殊字符会作为本身想表达的意思。● 自动配置类必须在一定的条件下才能生效,那么我们如何知道哪些配置类生效哪些没有生效,其实我们可以通过在配置文件启用 debug=true属性,就可以查看哪些配置类生效。原创 2023-11-25 20:47:39 · 1974 阅读 · 38 评论 -
SpringBoot——定制错误页面及原理
来统配 404.xml和 400.xml等等,但是优先获取精准的页面。如果模板引擎中不存在,则会从静态页面中获取错误页面。【1】自定义异常处理类,返回定制的 JSON数据。就会生效(定制错误的响应规则),根据如下源码可知,将会来到。③、页面上的数据或 JSON返回的数据都是可以通过。错误处理的自动配置类,以下4项为此类的重要信息。②、也可以自定义异常处理类,返回 JSON数据。当系统出现 4xx或者 5xx之类的错误时,在页面添加错误信息,供我们使用。会在后面的源码分析中说到。的子类,放入容器中。原创 2023-11-25 10:02:05 · 1535 阅读 · 20 评论 -
SpringBoot——拦截器
四、需要将自己定义的拦截器注册到IOC容器中,进入我们自定义的配置类MyMvcConfig。需要注意的是登录请求/user/login不要忘记排除掉。内的全部方法,并没有给出任何的业务逻辑处理,这一点设计恰到好处的让我们不必去实现那些我们不用的方法,都交由。:在业务处理器处理请求之前被调用。抽象类空实现,如果我们需要针对具体的某一个方法做出逻辑处理,仅仅需要在。该抽象类其实里面没有任何的方法实现,只是空实现了接口。二、配置视图映射,新建配置类通过继承。请求的时候,也可以跳转至。方法,添加视图映射。原创 2023-11-24 22:51:46 · 1526 阅读 · 23 评论 -
SpringBoot——MVC原理
1)、在自动配置很多组件的时候,先看容器中有木有用户自己配置的(@Bean,@Component)如果有就是用用户配置的,如果没有就是用自动配置的,因为底层使用了@ConditionalOnMiss注解来判断,容器中是否已经存在此类配置。2)、如果有些组件可以配置多个,比如视图解析器(ViewResolver)将用户配置的和自己默认的组合起来。继承抽象类既保留了所有的自动配置,也能用我们扩展的配置;类时,就不会导入自动配置的类了,第二步导入的就是这个类。的自动配置和我们的扩展配置都会起作用;原创 2023-11-23 23:05:01 · 2421 阅读 · 22 评论 -
SpringBoot——启动类的原理
配置文件定义属性[],自动装配到所属的配置类中,然后通过动态代理进入spring容器中。原创 2023-11-22 23:25:23 · 2327 阅读 · 50 评论 -
SpringBoot——数据访问
对于数据访问层,无论是SQL还是NoSQLSpringBoot默认采用整合的方式进行统一处理,添加大量自动配置,屏蔽了很多设置。引入各种来简化我们对数据访问层的操作。对我们来说只需要进行简单的设置即可。原创 2023-11-21 22:53:09 · 1569 阅读 · 50 评论 -
SpringBoot——日志及原理
1)、SpringBoot 底层也是使用 slf4j+logback 的方式进行日志记录的。2)、SpringBoot 也考虑到了其他日志,将他们都替换成了 slf4通过替换包。3)、中间替换包?我们通过引入的jar包查看究竟:4)、如果我们引入了其他框架?一定要把这个框架的默认日志依赖移除掉。原创 2023-11-20 22:48:40 · 2544 阅读 · 31 评论 -
SpringBoot——静态资源及原理
全局配置文件中自定义静态文件:在配置文件中设置如下,那么默认的就不在生效。已经默认将这些场景配置好,只需要在配置文件中指定少量配置就可以运行起来。【4】获取欢迎页,通过如下代码可知:静态资源文件夹下的所有。访问当前项目的任何资源(静态资源的文件夹)。设置与静态资源有关的参数,例如缓存时间。包中,查看目录结构如下:所有的。包的方式引入静态资源,可以参考。:配置来封装配置文件的内容。应用,选中自己需要的模块。的静态资源映射关系,通过。查看静态配置资源的规则。(在访问的时候,只需要写。等静态资源时,需要遵守。原创 2023-11-20 22:31:46 · 1106 阅读 · 31 评论 -
SpringBoot——入门及原理
用来简化应用开发,约定大于配置,去繁从简,是由团队提供的全新框架。其设计目的是用来简化新应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置(有特殊需求可以添加自己的配置覆盖默认配置),从而使开发人员不再需要定义样板化的配置。可以看成是的一站式解决方案。【1】快速创建独立运行的项目以及与主流框架集成。【2】使用嵌入式的容器,应用无需打成包,可以打成包,通过的方式直接运行。【3】(启动器)自动依赖与版本控制。【4】大量的自动配置,简化开发,也可以修改默认值。【5】无需配置,无代码生成,开箱即用原创 2023-11-19 19:21:47 · 2346 阅读 · 27 评论 -
Java面试——Spring Boot
Java面试——Spring Boot一、谈谈你对 SpringBoot 的理解简单说说我的理解:Java是一个静态语言,相比动态语言,它相对笨重,体现在我们搭建 SSM 框架写一个 Helloword 的时候相当复杂,需要写一大堆的配置。还有在导入 jar包依赖的时候版本号问题,令人头疼。但是,我们有 Spring呀,真的是 Java 开发人员的福音。SpringBoot 就是为解决这些问题而生的。让我们写一个 Helloword 跟动态语言一样简单。版本控制也通过 SpringBoot 与 Mav原创 2021-02-06 21:56:01 · 2940 阅读 · 5 评论