SpringBoot
阿弥陀佛僧
知幻即离,不假方便;离幻即觉,亦无渐次。
展开
-
SpringBoot——整合JPA
一、SpringData简介 SpringData用来统一数据访问的API,使数据访问层更易于使用,SpringDATA提供了各种数据访问模块的封装:涵盖关系型数据库、非关系型数据库等二、整合SpringDataJPA SpringData的jpa默认使用的是hibernate的jpa实现 1、引入依赖<dependency> <groupId>org....原创 2019-03-20 16:09:19 · 159 阅读 · 0 评论 -
SpringBoot——嵌入式Servlet容器配置
SpringBoot默认使用Tomcat作为嵌入式的Servlet容器:如何定制和修改Servlet容器的相关配置:1、通过主配置文件修改和server有关的配置(ServerProperties类的属性,在低版本的SpringBoot中ServerProperties实现了EmbeddedServletContainerCustomizer接口,高版本中则没有)server.po...原创 2019-03-20 16:19:04 · 187 阅读 · 0 评论 -
SpringBoot——web开发之增删改
1、增进入页面请求:<a class="btn btn-sm btn-success" href="/emp" th:href="@{emp}">员工添加</a>处理方法:@GetMapping("/emp")public String toAddPage(Model model){ Collection<Department> depa...原创 2019-03-20 16:18:59 · 343 阅读 · 0 评论 -
SpringBoot——web开发之Restful请求
1、Restful风格请求 请求的URI通过资源名称、资源标识以及HTTP请求的方式对资源进行CRUD操作,例如:/资源名称/{资源标识}2、员工列表html:<a class="nav-link" href="#" th:href="@{/emps}"> <svg xmlns="http://www.w3.org/2000/svg" width...原创 2019-03-20 16:18:54 · 607 阅读 · 0 评论 -
SpringBoot——web开发之登录拦截器
1、表单:<form class="form-signin" th:action="@{/user/login}" method="post" action="dashboard.html"> <img class="mb-4" th:src="@{/asserts/img/bootstrap-solid.svg}" src="asserts/img/bootstrap-...原创 2019-03-20 16:18:45 · 449 阅读 · 0 评论 -
SpringBoot——web开发之国际化
一、在SpringMVC中如何做国际化①编写国际化配置文件(properties类型文件)②使用ResourceBundleMessageSource管理国际化资源文件③在页面中使用<fmt:message>等标签取出国际化配置内容二、在SpringBoot中如何做国际化①编写国际化配置文件:在resources下建i18n文件夹,在i18n文件夹下建xxx_en_...原创 2019-03-20 16:18:40 · 4180 阅读 · 0 评论 -
SpringBoot——web开发之静态资源引入
1、虽说SpringBoot为我们提供了很多可以放置静态资源的文件夹,但静态页面(html)最好放在templates文件夹下,因为放在该文件夹下才能得到模板引擎的解析,放在其他静态资源文件夹下则不能得到模板引擎的解析,这样就无法使用模板引擎的强大功能了2、假如在public和templates文件夹下都存在index.html,那么在不进行其他设置的情况下默认首页是public文件夹下的in...原创 2019-03-20 16:18:34 · 879 阅读 · 0 评论 -
SpringBoot——web开发之SpringMVC自动配置原理
一、SpringBoot为SpringMVC提供的自动配置1、SpringMVC的自动配置可参考官方文档:Spring Web MVC Framework2、SpringBoot为SpringMVC提供的自动配置:参考类WebMvcAutoConfiguration①Inclusion of ContentNegotiatingViewResolver and BeanNameView...原创 2019-03-20 16:18:26 · 693 阅读 · 0 评论 -
SpringBoot——web开发之Thymeleaf的使用
1、引入thymeleaf<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>修改thymeleaf的版本(mave...原创 2019-03-20 16:18:21 · 1503 阅读 · 0 评论 -
SpringBoot——注册Servlet三大组件
之前我们是在web.xml中注册这三大组件,由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器,以此来启动SpringBoot的web应用,并没有web.xml文件,所以在SpringBoot中我们需要使用ServletRegistrationBean 、FilterRegistrationBean和ServletListenerRegistrationBean来分别注册...原创 2019-03-20 16:19:12 · 1645 阅读 · 0 评论 -
SpringBoot——切换其他嵌入式Servlet容器
SpringBoot支持的Servlet容器SpringBoot除了支持Tomcat外,还支持Jetty(适合开发长链接应用,比如web聊天)和Undertow(一个非阻塞的高性能的Servlet容器,并发性很好,但是不支持jsp)这两个Servlet容器切换Servlet容器SpringBoot默认使用的是Tomcat作为嵌入式的Servlet容器:引入web模块默认就是使用嵌入式的To...原创 2019-03-20 16:19:20 · 442 阅读 · 0 评论 -
SpringBoot——web开发之错误处理机制
一、SpringBoot提供的默认错误处理1、在浏览器端访问时,出现错误时响应一个错误页面:2、在其他客户端访问时,响应json数据:3、错误处理机制的原理,参照错误自动配置类——ErrorMvcAutoConfiguration,在错误自动配置类中,配置了以下组件:①ErrorPageCustomizer:定制错误的响应规则@Value("${error.path:...原创 2019-03-20 16:17:26 · 146 阅读 · 0 评论 -
SpringBoot——启动配置原理
一、基于回调机制 SpringBoot的启动和自动配置基于几个重要的事件回调: 1、ApplicationContextInitializer:配置在META-INF/spring.factories文件中 2、SpringApplicationRunListener:配置在META-INF/spring.factories文件中 3、ApplicationRunner:只需放在ioc容...原创 2019-03-20 16:09:09 · 355 阅读 · 0 评论 -
SpringBoot——整合Druid配置数据源监控
一、Druid简介 druid是阿里开发的,有成套的监控、安全等解决方案,在开发中经常使用。二、SpringBoot整合Druid 1、引入druid数据源依赖<!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency> <groupId>com.aliba...原创 2019-03-20 16:09:34 · 422 阅读 · 0 评论 -
SpringBoot——数据访问
一、SpringBoot的数据访问方式 对于数据访问层,无论是SQL还是NOSQL,SpringBoot默认采用整合SpringData的方式进行统一处理,添加大量自动配置,屏蔽了很多设置。引入各种XxxTemplate,XxxRepository来简化我们对数据访问层的操作。对我们来说只需要进行简单的设置即可。二、SpringBoot整合JDBC 1、创建项目,引入JDBC和Mysql...原创 2019-03-20 16:09:41 · 482 阅读 · 0 评论 -
SpringBoot——整合Mybatis
一、基础环境搭建 1、引入依赖&lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-jdbc&lt原创 2019-03-20 16:09:27 · 261 阅读 · 0 评论 -
SpringBoot——外置Servlet容器启动SpringBoot应用的原理
一、内置Servlet容器和外置Servlet容器的对比 内置:将应用打成jar包,项目启动时执行SpringBoot主配置类的main方法,启动IOC容器,创建嵌入式的Servlet容器并启动 外置:将应用打成war包,先启动外置的Servlet服务器(如tomcat),通过外置的服务器启动SpringBoot应用(将SpringBoot应用的主配置类作为参数传入SpringBootSe...原创 2019-03-20 16:20:59 · 1003 阅读 · 1 评论 -
SpringBoot——使用外置的servlet容器
一、内置Servlet容器的优缺点 优点:应用打成可执行的jar,简单、便携; 缺点:默认不支持JSP、优化定制比较复杂(可使用定制器ServerProperties、自定义EmbeddedServletContainerCustomizer或自己编写嵌入式Servlet容器的创建工厂EmbeddedServletContainerFactory)二、外置Tomcat的配置 1、使用Spr...原创 2019-03-20 16:20:23 · 472 阅读 · 0 评论 -
SpringBoot——嵌入式Servlet自动启动原理
低版本的Servlet容器自动启动原理(以tomcat为例) ①SpringBoot应用启动时会运行主配置类的main(),该方法中调用了run()public static void main(String[] args) { SpringApplication.run(SpringBootWebApplication.class, args);} ②run()中调用了refresh...原创 2019-03-20 16:19:39 · 436 阅读 · 0 评论 -
SpringBoot——嵌入式Servlet容器自动配置原理
Servlet容器自动配置类在spring-boot-autoconfigure包中有个web模块:该模块下有个类EmbeddedWebServerFactoryCustomizerAutoConfiguration,负责嵌入式Servlet容器的自动配置,该类的源码:@Configuration@EnableConfigurationProperties(ServerPropertie...原创 2019-03-20 16:19:30 · 639 阅读 · 0 评论 -
SpringBoot——web开发之模板引擎
模板引擎:1、SpringBoot的打包方式为jar包,并且使用嵌入式的tomcat,默认是不支持jsp的,因此SpringBoot推荐使用模板引擎2、市面上的模板引擎:JSP、Velocity、Freemarker、Thymeleaf3、模板引擎的思想:使用html写一个模板,然后给模板套上数据 模板:在html页面中有很多动态的值,使用占位符表达式 数据:用来填...原创 2019-03-20 16:18:16 · 384 阅读 · 0 评论 -
SpringBoot——web开发之静态资源映射
1、通过/webjars/**请求静态资源SpringMVC的相关配置都在WebMvcAutoConfiguration类中,在该类中有一处添加资源映射:public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { ...原创 2019-03-20 16:18:08 · 1404 阅读 · 0 评论 -
SpringBoot——配置之YAML
一、两种配置文件SpringBoot默认有两种全局配置文件:application.properties和application.yml,配置文件名是固定的配置文件的作用:修改SpringBoot自动配置的默认值,SpringBoot应用之所以能够直接访问,是因为SpringBoot在底层有很多默认配置,我们可以通过全局配置文件来更改这些默认配置YAML:以数据为中心,比JSON、XM...原创 2019-03-20 16:16:26 · 1459 阅读 · 0 评论 -
SpringBoot——Profile多环境支持
Profile是Spring对环境(开发、测试、生产)快速切换提供的功能支持,可通过主配置文件激活应用环境或在运行时指定参数快速切换应用环境。环境配置方式:1、多个配置文件(.properties或者.yml)的方式,文件命名格式为application-{profile}.properties或application-{profile}.yml,比如:①多个properties配置文...原创 2019-03-20 16:16:51 · 283 阅读 · 0 评论 -
SpringBoot——快速创建应用
使用Spring Initializr向导快速创建SpringBoot应用:1、创建工程的时候选择Spring Initializr2、填写项目的基本信息3、选择项目中需要的模块(web、sql、aop等),在创建工程的时候向导会联网自动将这些模块依赖的jar包引入,注意一定要联网4、完成创建生成的pom.xml:<?xml version="1.0...原创 2019-03-20 16:16:18 · 6852 阅读 · 2 评论 -
SpringBoot——自动配置
1、主程序类(应用的入口类)@SpringBootApplicationpublic class MainApplication { public static void main(String[] args) { //启动Spring应用 SpringApplication.run(MainApplication.class,args); ...原创 2019-03-20 16:16:14 · 283 阅读 · 0 评论 -
SpringBoot——场景启动器(starter)
一、版本控制器:SpringBoot应用的pom.xml中引入了一个父项目parent<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>...原创 2019-03-20 16:16:08 · 1396 阅读 · 0 评论 -
SpringBoot——属性值注入的方式
1、@ConfigurationProperties和@Value:@ConfigurationProperties默认从全局配置文件中获取值 @ConfigurationProperties @Value 功能 批量注入配置文件中的属性值 一个个的注入值 松散绑定 支持 不支持 SpEL 不支持 支持 JSR303数据校验 ...原创 2019-03-20 16:16:40 · 2372 阅读 · 0 评论 -
SpringBoot——Hello World
1、创建一个maven工程(采用jar的打包方式即可,不必要使用war包)注意启用IDEA的maven自动导入:在pom.xml文件变化时IDEA会自动帮助我们导入依赖2、导入SpringBoot相关的依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId&...原创 2019-03-20 16:15:59 · 184 阅读 · 0 评论 -
SpringBoot——入门
1、SpringBoot简介简化Spring应用开发的一个框架,是对整个Spring技术栈的一个大整合,可以说是J2EE开发的一站式解决方案。2、SpringBoot的优点 能够快速创建独立运行的Spring项目以及与主流框架集成使用嵌入式的Servlet容器,应用无需打成war包发布 使用starters管理Jar包的自动依赖与版本控制...原创 2019-03-20 16:15:45 · 166 阅读 · 0 评论 -
SpringBoot——配置文件加载位置
1、配置文件加载位置 SpringBoot应用启动时会扫描以下位置的主配置文件(application.properties/application.yml),作为应用的默认配置文件,且优先级由高到底: ①当前项目文件路径下的config文件夹——file/config/ ②当前项目文件路径下——file/ ③类路径下的config文件夹——classpat...原创 2019-03-20 16:16:57 · 533 阅读 · 0 评论 -
SpringBoot——配置之properties
使用application.properties文件配置bean的属性值:person.name=张三person.age=20person.married=falseperson.birth=2017/12/02person.phones.home=05308769087person.phones.componay=15589098765person.friends=李四,王五...原创 2019-03-20 16:16:33 · 262 阅读 · 0 评论 -
SpringBoot——外部配置加载顺序
SpringBoot除了可以从项目中的application.properties/application.yml主配置文件中加载配置,还可以从以下位置加载配置:1、命令行参数:所有的配置都可以在命令行参数中指定,每个配置项前使用--,多个配置间使用空格隔开,例如:java -jar spring-boot-02-0.0.1-SNAPSHOT.jar --server.port=8088...原创 2019-03-20 16:09:51 · 573 阅读 · 0 评论 -
SpringBoot——切换日志框架
一、默认日志框架 SpringBoot默认采用的日志框架是slf4j+logback,我们可以通过修改依赖包,来切换SpringBoot的日志框架二、切换日志框架 两种方式: 1、手动排除不需要的jar包,并添加需要切换的日志框架所需要的jar包:依据slf4j的日志适配图来增删jar<dependency> <groupId&g...原创 2019-03-20 16:17:57 · 259 阅读 · 0 评论 -
SpringBoot——自定义日志配置
一、SpringBoo的t默认配置 SpringBoot在其包下有日志框架相关的配置文件,含logback、log4j2等,这也是为什么SpringBoot可以直接使用这些日志框架的原因:二、自定义日志框架配置文件 有时我们为了开启日志框架的高级功能,需要自定义日志框架配置文件,这时我们只需要将相应日志框架的配置文件放在类路径的根目录下即可:对日志框架配置文件的...原创 2019-03-20 16:17:39 · 1811 阅读 · 0 评论 -
SpringBoot——日志使用
一、日志的级别由低到高:trace(跟踪轨迹)<debug<info<warn<errorSpringBoot默认的日志级别是info二、日志级别的设置在application.properties/application.yml中设置:logging.level.com.bdm=trace给com.dbm包及其子包设置日志级别为trace,这样t...原创 2019-03-20 16:17:35 · 365 阅读 · 0 评论 -
SpringBoot——日志关系
SpringBoot使用spring‐boot‐starter‐logging来做日志功能:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐logging</artifactId></depe...原创 2019-03-20 16:17:18 · 187 阅读 · 0 评论 -
SpringBoot——日志框架
1、市面上的日志框架:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j......SpringBoot中使用的日志框架: 日志接口层:SLF4J 日志实现:LogBackSpring使用的日志框架:JCL(commons-logging)2、slf4j的使用开发中日志方法的调用,不应该直接调用日志的实现类方法,...原创 2019-03-20 16:17:13 · 235 阅读 · 0 评论 -
SpringBoot——web开发初窥
一、使用SpringBoot开发的步骤1、创建SpringBoot应用,选中我们需要的场景模块,比如web、jdbc、mybatis...2、在配置文件中指定少量配置——SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行3、编写业务代码二、自动配置原理的探究探究问题:每个场景中SpringBoot帮我们配置了什么?哪些配置能修改?能不能扩展...原创 2019-03-20 16:18:02 · 157 阅读 · 0 评论 -
SpringBoot——自动配置细节
1、自动配置类中有很多@Conditional注解的派生注解,用来判断哪些组件需要被纳入容器管理,满足条件后才会向容器中添加这些组件,以下列举出了一些派生注解:这就是为什么在spring.factories有很多自动配置类,但并不是所有的自动配置类都会被纳入到容器中,因为不是所有的@Conditionale都会被满足,也就是说只有满足了@Conditional注解的组件才会被纳入到容器中,...原创 2019-03-20 16:17:09 · 167 阅读 · 0 评论