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 · 1022 阅读 · 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 · 915 阅读 · 0 评论 -
33更多SpringBoot整合示例
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples原创 2019-05-18 14:19:15 · 330 阅读 · 0 评论 -
32SpringBoot自定义Starter
如何编写自动配置模式:启动器只用来做依赖导入;专门来写一个自动配置模块;启动器依赖自动配置;别人只需要引入启动器(starter)mybatis-spring-boot-starter;自定义启动器名-spring-boot-starter步骤1)、启动器模块2)、自动配置模块HelloProperties:HelloService:HelloServiceAuto...原创 2019-05-18 14:17:21 · 321 阅读 · 0 评论 -
31SpringBoot启动配置原理
创建SpringApplication对象运行run方法public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationCo...原创 2019-05-18 14:10:13 · 391 阅读 · 0 评论 -
30SpringBoot整合SpringData JPA
SpringData简介整合SpringData JPAJPA:ORM(Object Relational Mapping);1)、编写一个实体类(bean)和数据表进行映射,并且配置好映射关系;2)、编写一个Dao接口来操作实体类对应的数据表(Repository)3)、基本的配置JpaProperties...原创 2019-05-18 13:58:24 · 324 阅读 · 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 · 345 阅读 · 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 · 374 阅读 · 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 · 1311 阅读 · 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 · 444 阅读 · 0 评论 -
25 SpringBoot使用外置的Servlet容器
嵌入式Servlet容器:应用打成可执行的jar优点:简单、便携;缺点:默认不支持JSP、优化定制比较复杂(使用定制器【ServerProperties、自定义EmbeddedServletContainerCustomizer】,自己编写嵌入式Servlet容器的创建工厂【EmbeddedServletContainerFactory】);外置的Servlet容器:外面安装Tomcat—应...原创 2019-05-16 16:28:31 · 488 阅读 · 2 评论 -
24 SpringBoot配置嵌入式Servlet容器
SpringBoot默认使用Tomcat作为嵌入式的Servlet容器;1)、如何定制和修改Servlet容器的相关配置;1、修改和server有关的配置(ServerProperties【也是EmbeddedServletContainerCustomizer】);2、编写一个EmbeddedServletContainerCustomizer:嵌入式的Servlet容器的定制器;来修...原创 2019-05-16 16:21:04 · 481 阅读 · 2 评论 -
23 SpringBoot如何定制错误界面
如何定制错误的页面1)、有模板引擎的情况下;error/状态码; 【将错误页面命名为 错误状态码.html 放在模板引擎文件夹里面的error文件夹下】,发生此状态码的错误就会来到 对应的页面;我们可以使用4xx和5xx作为错误页面的文件名来匹配这种类型的所有错误,精确优先(优先寻找精确的状态码.html);页面能获取的信息;timestamp:时间戳status:状态码error:错...原创 2019-05-16 16:02:07 · 356 阅读 · 1 评论 -
22 SpringBoot默认的错误处理机制
默认效果:1)、浏览器,返回一个默认的错误页面浏览器发送请求的请求头:2)、如果是其他客户端,默认响应一个json数据原理:可以参照ErrorMvcAutoConfiguration;错误处理的自动配置;给容器中添加了以下组件1、DefaultErrorAttributes:2、BasicErrorController:处理默认/error请求3、ErrorPageC...原创 2019-05-16 15:55:30 · 778 阅读 · 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 · 487 阅读 · 0 评论 -
20 SpringBoot之RestfulCRUD(一)
登陆开发期间模板引擎页面修改以后,要实时生效。1)、禁用模板引擎的缓存2)、页面修改完成以后ctrl+f9:重新编译;登陆错误消息的显示拦截器进行登陆检查拦截器注册拦截器...原创 2019-05-16 14:52:12 · 389 阅读 · 0 评论 -
19 SpringBoot国际化
1)、编写国际化配置文件;2)、使用ResourceBundleMessageSource管理国际化资源文件3)、在页面使用fmt:message取出国际化内容步骤:1)、编写国际化配置文件,抽取页面需要显示的国际化消息2)、SpringBoot自动配置好了管理国际化资源文件的组件;3)、去页面获取国际化的值;效果:根据浏览器语言设置的信息切换了国际化;原理:国际化Loc...原创 2019-05-16 14:35:54 · 332 阅读 · 0 评论 -
18 SpringBoot设置默认访问首页
//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能//@EnableWebMvc 不要接管SpringMVC@Configurationpublic class MyMvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControlle...原创 2019-05-16 14:13:27 · 1024 阅读 · 0 评论 -
17 如何修改SpringBoot的默认配置
1)、SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean、@Component)如果有就用用户配置的,如果没有,才自动配置;如果有些组件可以有多个(ViewResolver)将用户配置的和自己默认的组合起来;2)、在SpringBoot中会有非常多的xxxConfigurer帮助我们进行扩展配置3)、在SpringBoot中会有很多的xxxCustomiz...原创 2019-05-16 13:57:06 · 523 阅读 · 0 评论 -
16 SpringBoot之SpringMVC自动配置
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications1. Spring MVC auto-configurationSpring Boot 自动配置好了SpringMVC以下是SpringBoot对Sprin...原创 2019-05-16 11:47:13 · 360 阅读 · 0 评论 -
15 SpringBoot模板引擎
JSP、Velocity、Freemarker、ThymeleafSpringBoot推荐的Thymeleaf;语法更简单,功能更强大;1、引入thymeleaf2、Thymeleaf使用只要我们把HTML页面放在classpath:/templates/,thymeleaf就能自动渲染;使用:1、导入thymeleaf的名称空间<html lang="en" xmln...原创 2019-05-16 11:26:41 · 297 阅读 · 0 评论 -
14 SpringBoot的Web开发简介
简介使用SpringBoot:1)、创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码;自动配置原理?这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?xxxSpringBoot对静态资源的映射规则@Configuration...原创 2019-05-16 11:09:12 · 428 阅读 · 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 · 362 阅读 · 0 评论 -
13 SpringBoot日志使用
默认配置SpringBoot默认帮我们配置好了日志;//记录器Logger logger = LoggerFactory.getLogger(getClass());@Testpublic void contextLoads() { //System.out.println(); //日志的级别; //由低到高 trace<debug<info<warn<...原创 2019-05-16 10:50:21 · 279 阅读 · 0 评论 -
12 SpringBoot日志关系
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter</artifactId></dependency>SpringBoot使用它来做日志功能<dependency> <g...原创 2019-05-16 10:31:58 · 311 阅读 · 0 评论 -
11 SpringBoot日志
日志框架小张;开发一个大型系统;1、System.out.println("");将关键数据打印在控制台;去掉?写在一个文件?2、框架来记录系统的一些运行时信息;日志框架 ; zhanglogging.jar;3、高大上的几个功能?异步模式?自动归档?xxxx? zhanglogging-good.jar?4、将以前框架卸下来?换上新的框架,重新修改之前相关的API;zhangloggi...原创 2019-05-16 10:21:14 · 271 阅读 · 0 评论 -
10 SpringBoot自动配置原理
自动配置原理1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration2)、@EnableAutoConfiguration 作用:利用EnableAutoConfigurationImportSelector给容器中导入一些组件?可以查看selectImports()方法的内容;List configurations = g...原创 2019-05-15 15:16:22 · 347 阅读 · 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 · 292 阅读 · 0 评论 -
08 SpringBoot配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件–file:./config/–file:./–classpath:/config/–classpath:/优先级由高到底,高优先级的配置会覆盖低优先级的配置;SpringBoot会从这四个位置全部加载主配置文件;互补配置...原创 2019-05-15 14:12:09 · 307 阅读 · 0 评论 -
07 SpringBoot之Profile文件
1、多Profile文件我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml默认使用application.properties的配置;2、yml支持多文档块方式server: port: 8081spring: profiles: active: prod‐‐‐server: port: 8083spring...原创 2019-05-15 13:59:48 · 268 阅读 · 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 · 421 阅读 · 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: 12javaBean:/*** 将配置文件中配置的每一个属性的值,映射到这个组件中* @Conf...原创 2019-05-15 11:21:01 · 372 阅读 · 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 · 280 阅读 · 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 · 550 阅读 · 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 · 505 阅读 · 0 评论 -
01SpringBoot入门
Spring Boot 简介1、简化Spring应用开发的一个框架;2、整个Spring技术栈的一个大整合;3、J2EE开发的一站式解决方案; 微服务2014,martin fowler微服务: 架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;单体应用: ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;环...原创 2019-05-14 19:45:55 · 432 阅读 · 0 评论