SpringBoot
SpringBoot
杨林伟
像火箭科学家一样思考!
展开
-
关于 spring.factories
SpringBoot一般加载启动类目录下的包,但是有些类不在这些包里面,除了使用@Import的方式加载,还有什么方式吗? 答:可以使用spring.factories来解决 举个例子,如下图(点击查看图片来源): 比如需要加载Swagger配置,如果不使用spring.facotries是加载不了的,启动类只能加载config和controller里面的类,为了能加载Swagger配置,我们可以在resources文件夹里面新建META-INF文件夹,里面再新建spring.factories文件,配置原创 2020-12-10 16:45:22 · 1010 阅读 · 0 评论 -
SpringBoot修改启动LOGO
先贴上效果图: 实现步骤如下: 在resources文件夹新建banner.txt文件 生成字体:http://patorjk.com/software/taag/ 把生成字体复制到banner.txt 启动项目即可看见效果。 注意:如果banner.txt不想放到resources,可以实现ApplicationContextInitializer类并制定文件,代码如下: public class BannerInitializer implements ApplicationContextInit原创 2020-11-11 16:32:11 · 908 阅读 · 0 评论 -
33更多SpringBoot整合示例
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples原创 2019-05-18 14:19:15 · 322 阅读 · 0 评论 -
32SpringBoot自定义Starter
如何编写自动配置 模式: 启动器只用来做依赖导入; 专门来写一个自动配置模块; 启动器依赖自动配置;别人只需要引入启动器(starter) mybatis-spring-boot-starter;自定义启动器名-spring-boot-starter 步骤 1)、启动器模块 2)、自动配置模块 HelloProperties: HelloService: HelloServiceAuto...原创 2019-05-18 14:17:21 · 313 阅读 · 0 评论 -
31SpringBoot启动配置原理
创建SpringApplication对象 运行run方法 public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationCo...原创 2019-05-18 14:10:13 · 387 阅读 · 0 评论 -
30SpringBoot整合SpringData JPA
SpringData简介 整合SpringData JPA JPA:ORM(Object Relational Mapping); 1)、编写一个实体类(bean)和数据表进行映射,并且配置好映射关系; 2)、编写一个Dao接口来操作实体类对应的数据表(Repository) 3)、基本的配置JpaProperties ...原创 2019-05-18 13:58:24 · 314 阅读 · 0 评论 -
29SpringBoot整合MyBatis
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis‐spring‐boot‐starter</artifactId> <version>1.3.1</version> </dependency> ...原创 2019-05-18 13:53:30 · 340 阅读 · 0 评论 -
28SpringBoot整合Druid
接上一篇:27SpringBoot之JDBC(完整代码) package com.atguigu.springboot.config; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.supp...原创 2019-05-18 11:58:03 · 365 阅读 · 0 评论 -
27SpringBoot之JDBC(完整代码)
项目结构图 pom.xml <?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://mave...原创 2019-05-18 11:53:44 · 1301 阅读 · 0 评论 -
26SpringBoot之JDBC(关键代码)
pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐jdbc</artifactId> </dependency> <dependency> <groupId&...原创 2019-05-18 11:49:02 · 434 阅读 · 0 评论 -
25 SpringBoot使用外置的Servlet容器
嵌入式Servlet容器:应用打成可执行的jar 优点:简单、便携; 缺点:默认不支持JSP、优化定制比较复杂(使用定制器【ServerProperties、自定义EmbeddedServletContainerCustomizer】,自己编写嵌入式Servlet容器的创建工厂【EmbeddedServletContainerFactory】); 外置的Servlet容器:外面安装Tomcat—应...原创 2019-05-16 16:28:31 · 480 阅读 · 2 评论 -
24 SpringBoot配置嵌入式Servlet容器
SpringBoot默认使用Tomcat作为嵌入式的Servlet容器; 1)、如何定制和修改Servlet容器的相关配置; 1、修改和server有关的配置(ServerProperties【也是EmbeddedServletContainerCustomizer】); 2、编写一个EmbeddedServletContainerCustomizer:嵌入式的Servlet容器的定制器;来修...原创 2019-05-16 16:21:04 · 475 阅读 · 2 评论 -
23 SpringBoot如何定制错误界面
如何定制错误的页面 1)、有模板引擎的情况下;error/状态码; 【将错误页面命名为 错误状态码.html 放在模板引擎文件夹里面的error文件夹下】,发生此状态码的错误就会来到 对应的页面; 我们可以使用4xx和5xx作为错误页面的文件名来匹配这种类型的所有错误,精确优先(优先寻找精确的状态码.html); 页面能获取的信息; timestamp:时间戳 status:状态码 error:错...原创 2019-05-16 16:02:07 · 350 阅读 · 1 评论 -
22 SpringBoot默认的错误处理机制
默认效果: 1)、浏览器,返回一个默认的错误页面 浏览器发送请求的请求头: 2)、如果是其他客户端,默认响应一个json数据 原理: 可以参照ErrorMvcAutoConfiguration;错误处理的自动配置; 给容器中添加了以下组件 1、DefaultErrorAttributes: 2、BasicErrorController:处理默认/error请求 3、ErrorPageC...原创 2019-05-16 15:55:30 · 770 阅读 · 0 评论 -
21 SpringBoot之RestfulCRUD(二)
CRUD-员工列表 实验要求: 1)、RestfulCRUD:CRUD满足Rest风格; URI: /资源名称/资源标识 HTTP请求方式区分对资源CRUD操作 2)、实验的请求架构 3)、员工列表: thymeleaf公共页面元素抽取 三种引入公共片段的th属性: th:insert: 将公共片段整个插入到声明引入的元素中 th:replace: 将声明引入的元素替换为公共片段 th:in...原创 2019-05-16 15:00:36 · 475 阅读 · 0 评论 -
20 SpringBoot之RestfulCRUD(一)
登陆 开发期间模板引擎页面修改以后,要实时生效。 1)、禁用模板引擎的缓存 2)、页面修改完成以后ctrl+f9:重新编译; 登陆错误消息的显示 拦截器进行登陆检查 拦截器 注册拦截器 ...原创 2019-05-16 14:52:12 · 382 阅读 · 0 评论 -
19 SpringBoot国际化
1)、编写国际化配置文件; 2)、使用ResourceBundleMessageSource管理国际化资源文件 3)、在页面使用fmt:message取出国际化内容 步骤: 1)、编写国际化配置文件,抽取页面需要显示的国际化消息 2)、SpringBoot自动配置好了管理国际化资源文件的组件; 3)、去页面获取国际化的值; 效果:根据浏览器语言设置的信息切换了国际化; 原理: 国际化Loc...原创 2019-05-16 14:35:54 · 327 阅读 · 0 评论 -
18 SpringBoot设置默认访问首页
//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能 //@EnableWebMvc 不要接管SpringMVC @Configuration public class MyMvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControlle...原创 2019-05-16 14:13:27 · 1016 阅读 · 0 评论 -
17 如何修改SpringBoot的默认配置
1)、SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean、@Component)如果有就用用户配置的,如果没有,才自动配置;如果有些组件可以有多个(ViewResolver)将用户配置的和自己默认的组合起来; 2)、在SpringBoot中会有非常多的xxxConfigurer帮助我们进行扩展配置 3)、在SpringBoot中会有很多的xxxCustomiz...原创 2019-05-16 13:57:06 · 517 阅读 · 0 评论 -
16 SpringBoot之SpringMVC自动配置
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications 1. Spring MVC auto-configuration Spring Boot 自动配置好了SpringMVC 以下是SpringBoot对Sprin...原创 2019-05-16 11:47:13 · 354 阅读 · 0 评论 -
15 SpringBoot模板引擎
JSP、Velocity、Freemarker、Thymeleaf SpringBoot推荐的Thymeleaf; 语法更简单,功能更强大; 1、引入thymeleaf 2、Thymeleaf使用 只要我们把HTML页面放在classpath:/templates/,thymeleaf就能自动渲染; 使用: 1、导入thymeleaf的名称空间 <html lang="en" xmln...原创 2019-05-16 11:26:41 · 291 阅读 · 0 评论 -
14 SpringBoot的Web开发简介
简介 使用SpringBoot: 1)、创建SpringBoot应用,选中我们需要的模块; 2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 3)、自己编写业务代码; 自动配置原理? 这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?xxx SpringBoot对静态资源的映射规则 @Configuration...原创 2019-05-16 11:09:12 · 423 阅读 · 0 评论 -
14 SpringBoot切换日志框架
可以按照slf4j的日志适配图,进行相关的切换; slf4j+log4j的方式; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐web</artifactId> <exclusions> ...原创 2019-05-16 10:56:39 · 357 阅读 · 0 评论 -
13 SpringBoot日志使用
默认配置 SpringBoot默认帮我们配置好了日志; //记录器 Logger logger = LoggerFactory.getLogger(getClass()); @Test public void contextLoads() { //System.out.println(); //日志的级别; //由低到高 trace<debug<info<warn<...原创 2019-05-16 10:50:21 · 275 阅读 · 0 评论 -
12 SpringBoot日志关系
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter</artifactId> </dependency> SpringBoot使用它来做日志功能 <dependency> <g...原创 2019-05-16 10:31:58 · 307 阅读 · 0 评论 -
11 SpringBoot日志
日志框架 小张;开发一个大型系统; 1、System.out.println("");将关键数据打印在控制台;去掉?写在一个文件? 2、框架来记录系统的一些运行时信息;日志框架 ; zhanglogging.jar; 3、高大上的几个功能?异步模式?自动归档?xxxx? zhanglogging-good.jar? 4、将以前框架卸下来?换上新的框架,重新修改之前相关的API;zhangloggi...原创 2019-05-16 10:21:14 · 264 阅读 · 0 评论 -
10 SpringBoot自动配置原理
自动配置原理 1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 2)、@EnableAutoConfiguration 作用: 利用EnableAutoConfigurationImportSelector给容器中导入一些组件? 可以查看selectImports()方法的内容; List configurations = g...原创 2019-05-15 15:16:22 · 341 阅读 · 0 评论 -
09 SpringBoot外部配置加载顺序
SpringBoot也可以从以下位置加载配置; 优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置 1.命令行参数 所有的配置都可以在命令行上进行指定 java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc 多个配置用空格分开; -...原创 2019-05-15 14:23:31 · 283 阅读 · 0 评论 -
08 SpringBoot配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文 件 –file:./config/ –file:./ –classpath:/config/ –classpath:/ 优先级由高到底,高优先级的配置会覆盖低优先级的配置; SpringBoot会从这四个位置全部加载主配置文件;互补配置...原创 2019-05-15 14:12:09 · 303 阅读 · 0 评论 -
07 SpringBoot之Profile文件
1、多Profile文件 我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml 默认使用application.properties的配置; 2、yml支持多文档块方式 server: port: 8081 spring: profiles: active: prod ‐‐‐ server: port: 8083 spring...原创 2019-05-15 13:59:48 · 260 阅读 · 0 评论 -
06 SpringBoot配置文件占位符
1、随机数 ${random.value}、${random.int}、${random.long} ${random.int(10)}、${random.int[1024,65536]} 2、占位符获取之前配置的值,如果没有可以是用:指定默认值。 person.last‐name=张三${random.uuid} person.age=${random.int} person.birth=20...原创 2019-05-15 13:50:45 · 414 阅读 · 0 评论 -
05 SpringBoot配置文件值注入
配置文件 person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1,k2: 12} lists: ‐ lisi ‐ zhaoliu dog: name: 小狗 age: 12 javaBean: /** * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @Conf...原创 2019-05-15 11:21:01 · 361 阅读 · 0 评论 -
04SpringBoot配置文件
配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的; •application.properties •application.yml配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好; YAML(YAML Ain’t Markup Language) YAML A Markup Language:是一个标记语言 YAML ...原创 2019-05-15 10:48:35 · 274 阅读 · 0 评论 -
03使用Spring Initializer快速创建Spring Boot项目
IDEA:使用 Spring Initializer快速创建项目 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目; 选择我们需要的模块;向导会联网创建Spring Boot项目; 默认生成的Spring Boot项目; 主程序已经生成好了,我们只需要我们自己的逻辑 resources文件夹中目录结构 ---- static:保存所有的静态资源; js css i...原创 2019-05-15 09:56:14 · 544 阅读 · 0 评论 -
02SpringBoot入门(HelloWorld探究)
POM文件 父项目 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐parent</artifactId> <version>1.5.9.RELEASE</version> </pa...原创 2019-05-14 19:59:24 · 496 阅读 · 0 评论 -
01SpringBoot入门
Spring Boot 简介 1、简化Spring应用开发的一个框架; 2、整个Spring技术栈的一个大整合; 3、J2EE开发的一站式解决方案; 微服务 2014,martin fowler 微服务: 架构风格(服务微化) 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 单体应用: ALL IN ONE 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元; 环...原创 2019-05-14 19:45:55 · 425 阅读 · 0 评论