4.14.使用RestTemplate调用REST服务 如果需要从应用程序调用远程REST服务,则可以使用Spring Framework的RestTemplate类.由于RestTemplate实例通常需要在使用前进行自定义,因此Spring Boot不提供任何单个自动配置的RestTemplate bean.但是,它会自动配置RestTemplateBuilder,可以在需要时创建RestTemplate实例.自动配置RestTemplateBuilder可确保明智地将HttpMessage…
9."使用方法"指南 9.1.Spring Boot应用程序 9.1.1.创建自己的FailureAnalyzer FailureAnalyzer被包装在FailureAnalysis中,可以在启动时拦截异常并将其转换为易于阅读的消息.Spring Boot为与应用程序上下文相关的异常,JSR-303验证等提供了此类分析器.您也可以创建自己的. AbstractFailureAnalyzer是一个方便的FailureAnalyzer扩展,它检查要处理的异常中是否存在指定的异常类型.您可…
4.10.使用SQL数据库 从使用JdbcTemplate直接的JDBC访问到完整的"对象关系映射"技术(例如Hibernate),Spring框架为使用SQL数据库提供了广泛的支持. Spring Data提供了更高级别的功能:直接从接口创建Repository实现,并使用约定从您的方法名称生成查询. 4.10.1.配置数据源 Java的javax.sql.DataSource接口提供了使用数据库连接的标准方法.传统上,"数据源"使用URL以及一些凭据来建立数据库…
4.11.使用NoSQL技术 Spring Data提供了其他项目来帮助您访问各种NoSQL技术,包括: Redis MongoDB Neo4J Solr Elasticsearch Cassandra Couchbase LDAP InfluxDB Spring Boot为Redis,MongoDB,Neo4j,Elasticsearch,Solr, Cassandra,Couchbase和LDAP提供自动配置.您可以使用其他项目,但必须自己进行配置.请参阅相应的参考文档. 4.11.1.Re…
4.12.缓存(Caching) Spring框架提供了对应用程序透明添加缓存的支持.从本质上讲,抽象将缓存应用于方法,从而根据缓存中可用的信息减少执行次数.缓存逻辑是透明应用的,不会对调用者造成任何干扰.只要通过@EnableCaching注解启用了缓存支持,Spring Boot就会自动配置缓存基础结构. 简而言之,将缓存添加到服务的操作就像将相关注解添加到其方法一样容易,如以下示例所示: import org.springframework.cache.annotation.Cacheab…
4.13.Messaging Spring框架为与消息传递系统集成提供了广泛的支持,从使用JmsTemplate简化JMS API到完整的异步接收消息的基础结构.Spring AMQP为高级消息队列协议提供了类似的功能集.Spring Boot还为RabbitTemplate和RabbitMQ 提供了自动配置选项.Spring WebSocket本身就包含对STOMP消息的支持,而Spring Boot通过启动器和少量的自动配置对此提供了支持.Spring Boot还支持Apache Kafka…
4.18.JTA的分布式事务 通过使用Atomikos或Bitronix嵌入式事务管理器,Spring Boot支持跨多个XA资源的分布式JTA事务.部署到合适的Java EE应用程序服务器时,还支持JTA事务. 当检测到JTA环境时,将使用Spring JtaTransactionManager来管理事务.自动配置的JMS,DataSource和JPA Bean已升级为支持XA事务.您可以使用标准Spring习惯用法(例如@Transactional)来参与分布式事务.如果您在JTA环境中,但…
4.25. Testing Spring Boot提供了许多实用程序和注解,可以在测试应用程序时提供帮助.测试支持由两个模块提供:spring-boot-test包含核心项,spring-boot-test-autoconfigure支持测试的自动配置. 大多数开发人员都使用spring-boot-starter-test 启动器,该程序同时导入Spring Boot测试模块以及JUnit Jupiter,AssertJ,Hamcrest和许多其他有用的库. 启动程序还带来了老式引擎,因此您可以…
5.Spring Boot Actuator:可投入生产的功能 Spring Boot包含许多其他功能,可帮助您在将应用程序投入生产时监控和管理您的应用程序.您可以选择使用HTTP端点或JMX管理和监视您的应用程序.审核,运行状况和指标收集也可以自动应用于您的应用程序. 5.1.启用生产就绪功能 spring-boot-actuator模块提供了Spring Boot生产就绪的所有功能.启用功能的最简单方法是添加依赖项,spring-boot-starter-actuator"启动器"…
6.部署Spring Boot应用程序 在部署应用程序时,Spring Boot的灵活打包选项提供了很多选择.您可以将Spring Boot应用程序部署到各种云平台,容器映像(例如Docker)或虚拟机/真实机上. 6.1.部署到云 Spring Boot的可执行jar已为大多数流行的云PaaS(平台即服务)服务商准备就绪.这些服务商往往要求您"自带容器".他们管理应用程序流程(不是专门用于Java应用程序),因此他们需要一个中间层,以使您的应用程序适应云中正在运行的流程的概念. 两家…
9.11.消息传递 Spring Boot提供了许多包含消息传递的启动器.本部分回答了将消息与Spring Boot一起使用所引起的问题. 9.11.1.禁用事务JMS会话 如果您的JMS代理不支持事务处理会话,则必须完全禁用对事务的支持.如果您创建自己的JmsListenerContainerFactory,则无需做任何事情,因为默认情况下无法进行交易.如果要使用DefaultJmsListenerContainerFactoryConfigurer来重用Spring Boot的默认值,则可以…
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念,请先移步上一篇文章 Spring Boot 学习.本篇原本是为了深入了解下Spring Boot而出现的. 另外,Spring Boot 仍然是基于Spring的,建议在赶完工之后深入学习下Spring,有兴趣可以看看我的 Spring 4 官方文档学习(十一)Web MVC 框架 .欢迎探讨,笑~…
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念,请先移步上一篇文章 Spring Boot 学习.本篇原本是为了深入了解下Spring Boot而出现的. 另外,Spring Boot 仍然是基于Spring的,建议在赶完工之后深入学习下Spring,有兴趣可以看看我的 Spring 4 官方文档学习(十一)Web MVC 框架 .欢迎探讨,笑~…
学习内容相关信息 最新版本:2.2.0 CURRENT GA 官网地址 官方文档地址 单页版文档地址 代码生成网址 2.入门 Spring Boot的主要目标是: 为所有Spring开发提供更快且入门更简单的体验 开箱即用,但随着需求开始分歧,可以快速从默认配置重新开始. 提供一系列大型项目通用的非功能性功能(例如嵌入式服务器,安全性,指标,运行状况检查和外部配置). 完全没有代码生成,也不需要XML配置. Spring Boot 2.2.0.RELEASE需要Java 8,并且与Java 13…
3.使用Spring Boot 3.1.构建系统 建议选择Maven或Gradle作为构建工具 每个Spring Boot版本都提供了它所支持的依赖关系的精选列表.实际上,您不需要为构建配置中的所有这些依赖项提供版本,因为Spring Boot会为您管理版本.当您升级Spring Boot本身时,这些依赖项也会以一致的方式升级. Spring Boot的每个发行版都与Spring Framework的基本版本相关联.强烈建议不要指定其版本. 3.1.2.Maven Maven用户可以从sprin…
9.4.Spring MVC Spring Boot有许多启动器包含Spring MVC.请注意,一些启动器包括对Spring MVC的依赖,而不是直接包含它. 9.4.1.编写JSON REST服务 只要Jackson2在类路径上,Spring Boot应用程序中的任何Spring @RestController默认情况下都应呈现JSON响应,如以下示例所示: @RestController public class MyController { @RequestMapping("/thing…
Spring Boot文档 入门 使用Spring Boot 3.1. 构建系统 3.2. 结构化代码 3.3. 配置类 3.4. 自动配置 3.5. Spring beans和依赖注入 3.6. 使用@SpringBootApplication注解 3.7. 运行您的应用程序 3.8. 开发者工具 Spring Boot功能 4.1. Spring应用 4.2. 外部化配置 4.3. Profiles 4.4. 日志 4.5. 国际化 4.6. JSON格式 4.7. 开发Web应用程序 4.…
4.2.外部化配置 Spring Boot使您可以外部化配置,以便可以在不同环境中使用相同的应用程序代码.您可以使用Properties文件,YAML文件,环境变量和命令行参数来外部化配置.属性值可以通过@Value注解直接注入到你的bean ,通过Spring Environment抽象的访问,或者通过@ConfigurationProperties绑定到结构化对象. Spring Boot使用一个非常特殊的PropertySource顺序,该顺序旨在允许合理地覆盖值.属性按以下顺序考虑,优先…
4.7.开发Web应用程序 Spring Boot非常适合于Web应用程序开发.您可以使用嵌入式Tomcat,Jetty,Undertow或Netty创建独立的HTTP服务器.大多数Web应用程序都使用该spring-boot-starter-web模块来快速启动和运行.您还可以选择使用spring-boot-starter-webflux模块来构建反应式Web应用程序. 4.7.1.Spring Web MVC框架 在Spring Web MVC框架(通常简称为"Spring MVC"…
4.8. RSocket RSocket参考 RSocket是用于字节流传输的二进制协议.它通过单个连接传递的异步消息来启用对称交互模型. Spring框架的spring-messaging模块在客户端和服务器端都支持RSocket请求者和响应者. 更多参考Spring Framework的文档 4.8.1.RSocket策略自动配置 Spring Boot自动配置一个RSocketStrategies bean,该bean提供了用于编码和解码RSocket有效负载的所有必需基础结构.默认情况下…
一.SpringApplication banner,就是启动时输出的信息,可以在classpath下添加 banner.txt,或者设置 banner.location 来指向特定的文件.(默认编码utf-8,或者通过banner.charset指定) 除了txt,你还可以使用 banner.gif (jpg / png),或者设定 banner.imgage.location. 下面是默认的banner(忽略吧,没意义的东西):…
9.10.数据库初始化 可以使用不同的方式初始化SQL数据库,具体取决于堆栈是什么.当然,如果数据库是一个单独的进程,您也可以手动执行.建议使用单一机制进行模式生成. 9.10.1.使用JPA初始化数据库 JPA具有用于DDL生成的功能,可以将其设置为在启动时针对数据库运行.这是通过两个外部属性控制的: spring.jpa.generate-ddl (布尔值)打开和关闭该功能,并且与供应商无关. spring.jpa.hibernate.ddl-auto(枚举)是一种Hibernate功能,可…
9.9.数据存取 Spring Boot包含许多用于处理数据源的启动器. 9.9.1.配置自定义数据源 要配置自己的DataSource,请在配置中定义该类型的@Bean.Spring Boot可以在任何需要重用DataSource的地方重复使用,包括数据库初始化.如果需要外部化某些设置,则可以将其绑定DataSource到Environment. 以下示例显示了如何在Bean中定义数据源: @Bean @ConfigurationProperties(prefix="app.datasourc…
4. Spring Boot功能 4.1.Spring应用 便捷的启动方式: public static void main(String[] args) { SpringApplication.run(MySpringConfiguration.class, args); } SpingBoot默认日志级别是INFO. 4.1.1.启动失败 启动失败时,FailureAnalyzers会报告错误信息. 4.1.2.延迟初始化(懒加载) SpringApplication允许延迟初始化应用程序.…
4.3.Profiles Spring Profiles提供了一种隔离部分应用程序配置并使之仅在某些环境中可用的方法.任何@Component,@Configuration或@ConfigurationProperties可被标记@Profile,当它被加载时,限制使用. 如果@ConfigurationProperties通过@EnableConfigurationProperties而不是自动扫描来注册bean ,则@Profile需要在@EnableConfigurationPropert…
4.4.日志 Spring Boot使用Commons Logging进行所有内部日志记录,但是使底层日志实现打开状态.为Java Util Logging,Log4J2和Logback提供了默认配置.在每种情况下,记录器都已预先配置为使用控制台输出,同时还提供可选文件输出. 默认情况下,如果使用Starters,则使用Logback进行日志记录.还包括适当的Logback路由,以确保使用Java Util Logging,Commons Logging,Log4J或SLF4J的从属库都可以正常…
4.5.国际化 Spring Boot支持本地化消息,因此您的应用程序可以迎合不同语言首选项的用户.默认情况下,Spring Boot messages在类路径的根目录下查找message resource bundle的存在. 当配置的resource bundle的默认属性文件可用时(即默认为messages.properties),将应用自动配置.如果您的resource bundle仅包含特定于语言的属性文件,则需要添加默认文件.如果找不到与任何配置的基本名称匹配的属性文件,则不会自动配…
4.9.安全 如果Spring Security在类路径上,则默认情况下Web应用程序是采用的.Spring Boot依靠Spring Security的内容协商策略来确定使用httpBasic还是formLogin.要将方法级安全性添加到Web应用程序,您还可以添加@EnableGlobalMethodSecurity所需的设置. 默认的UserDetailsService有一个用户.用户名为user,密码为随机密码,并在应用程序启动时以INFO级别显示,如下例所示: Using genera…
10.附录 附录A:通用应用程序属性 附录B:配置元数据 附录C:自动配置类 附录D:测试的自动配置注释 附录E:可执行的Jar格式 附录F:依赖版本…
接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conversion(ConversionService).Spring Field Formatting.globle date & time format.Spring Validation. 本篇上承自前一篇,建议先看前一篇. 4.Spring Type Conversion (Spring类型转换) 上…