Spring Boot Starters启动器
Starters是什么?Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要加入spring-boot-starter-data-jpa启动器依赖就能使用了。 Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。 Starters命名Spring Boot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。 第三方的启动器不能以spring-boot开头命名,它们都被Spring Boot官方保留。一般一个第三方的应该这样命名,像mybatis的mybatis-spring-boot-starter。 Starters分类1. Spring Boot应用类启动器 启动器名称 功能描述 spring-boot-starter 包含自动配置、日志、YAML的支持。 spring-boot-starter-web 使用Spring MVC构...
Spring Boot 主类及目录结构介绍
使用 Spring Boot 会涉及到各种各样的配置,如开发、测试、线上就至少 3 套配置信息了。Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发、测试、线上环境使用不同的配置。 在 Spring Boot 里面,可以使用以下几种方式来加载配置。本章内容基于 Spring Boot 2.0 进行详解。 1、properties文件; 2、YAML文件; 3、系统环境变量; 4、命令行参数; 等等…… 我们可以在 Spring Beans 里面直接使用这些配置文件中加载的值,如: 1、使用 @Value 注解直接注入对应的值,这能获取到 Spring 中 Environment 的值; 2、使用 @ConfigurationProperties 注解把对应的值绑定到一个对象; 3、直接获取注入 Environment 进行获取; 配置属性的方式很多,Spring boot使用了一种独有的 PropertySource 可以很方便的覆盖属性的值。 配置属性加载的顺序如下: 1、开发者工具 `Devtools` 全局配置参数; 2、单元测试上的 &...
Spring Boot 之配置导入,强大到不行
我们知道在 Spring Boot 中可以用一个 @Configuration 配置文件来配置所有 Bean 及其他配置(不会的看这篇文章:Spring零配置之@Configuration注解详解),但其实没必要这么做。 我们可以把相关的配置独立出来,放到多个 @Configuration 中,如以下参考: MainConfiguration:项目主要配置 DataSoureceConfiguration:数据源配置 RedisConfiguration:Redis配置 MongoDBConfiguration:MongoDB配置 这时候 @Import 注解就能派上用场了,来看下它的源码: @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Import { /** * {@link Configuration}, {@link ImportSelector}, {@...
Spring Boot 功能实战
添加web功能启动器添加了Spring Boot基础依赖后,如要使用web mvc功能,只需要添加如下启动器即可,Spring Boot会自动装配web功能。 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> 添加启动类然后添加启动类,建议放在根包下,这里把Controller和启动类放在一起也是没问题的,实际请分包出来。 启动类必须要有main方法,并添加启动方法。 package hello; import org.springframework.boot.*; import org.springframework.boot.autoconfi...
Spring Boot 单元测试详解+实战教程
Spring Boot 的测试类库Spring Boot 提供了许多实用工具和注解来帮助测试应用程序,主要包括以下两个模块。 spring-boot-test:支持测试的核心内容。 spring-boot-test-autoconfigure:支持测试的自动化配置。 开发进行只要使用 spring-boot-starter-test 启动器就能引入这些 Spring Boot 测试模块,还能引入一些像 JUnit, AssertJ, Hamcrest 及其他一些有用的类库,具体如下所示。 JUnit:Java 应用程序单元测试标准类库。 Spring Test & Spring Boot Test:Spring Boot 应用程序功能集成化测试支持。 AssertJ:一个轻量级的断言类库。 Hamcrest:一个对象匹配器类库。 Mockito:一个Java Mock测试框架,默认支付 1.x,可以修改为 2.x。 JSONassert:一个用于JSON的断言库。 JsonPath:一个JSON操作类库。 下面是 Maven 的依赖关系图。 以上这些都是 S...
Spring Boot 国际化支持
本章将讲解如何在Spring Boot和Thymeleaf中做页面模板国际化的支持,根据系统语言环境或者session中的语言来自动读取不同环境中的文字。 国际化自动配置Spring Boot中已经对国际化这一块做了自动配置。 国际化自动配置类: org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration 查看自动配置源码有以下主要几个参数: private String basename = "messages"; private Charset encoding = Charset.forName("UTF-8"); private int cacheSeconds = -1; private boolean fallbackToSystemLocale = true; basename:默认的扫描的国际化文件名为messages,即在resources建立messages_xx.prope...
Spring Boot 发邮件,1 分钟教会你
Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口。 org.springframework.mail.javamail.JavaMailSender Spring Boot 提供了一个 starter,并能自动配置,下面来做个小例子,顺便解析它做了什么工作。 1、添加依赖在 Maven pom.xml 配置文件中加入 spring-boot-starter-mail 依赖。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 2、添加配置参数然后在 application.properties 文件中加入以下配置。 spring.mail.host=smtp.exmail.qq.com spring.mail.username=admin...
Spring Boot 发布将 jar 包转为 war 包
Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布。使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题。所以,jar包不一定合适适用所有的场景,如war包更合适,你可以尝试转为传统的war包,这样打补丁包可能更方便。 如何配置打war包呢?以下配置以Maven为说明讲解,Gradle的查看类似配置。 1、修改Spring Boot启动类 启动类继承SpringBootServletInitializer类,并覆盖configure方法。 下面是Spring Boot提供的示例代码。 @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return applicatio...
Spring Boot 定制启动图案
启动图案Spring Boot在启动的时候会显示一个默认的Spring的图案,对应的类为SpringBootBanner。 . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_...
Spring Boot 应用 10 种保护绝佳方法
Spring Boot大大简化了Spring应用程序的开发。它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量,如果你已经习惯了Spring和大量XML配置,Spring Boot无疑是一股清新的空气。 Spring Boot于2014年首次发布,自那以后发生了很多变化。安全性问题与代码质量和测试非常相似,已经日渐成为开发人员关心的问题,如果你是开发人员并且不关心安全性,那么也许认为一切理所当然。本文目的是介绍如何创建更安全的Spring Boot应用程序。 马特雷布尔与Simon Maple合作完成了这篇文章,他们都是为安全公司工作,热爱Java,并希望帮助开发人员创建更安全的应用程序。我们认为撰写这篇文章将是回馈社区的有趣方式。 1.在生产中使用HTTPS传输层安全性(TLS)是HTTPS的官方名称,你可能听说过它称为SSL(安全套接字层),SSL是已弃用的名称,TLS是一种加密协议,可通过计算机网络提供安全通信。其主要目标是确保计算机应用程序之间的隐私和数据完整性。 过去,TLS / SSL证书很昂贵,而且HTTPS被认为很慢,现在机器变得更快,已经解...
