- 浏览: 3547921 次
- 性别:
- 来自: 大连
博客专栏
-
使用Titanium Mo...
浏览量:38135
-
Cordova 3.x入门...
浏览量:607261
-
常用Java开源Libra...
浏览量:682256
-
搭建 CentOS 6 服...
浏览量:89316
-
Spring Boot 入...
浏览量:401798
-
基于Spring Secu...
浏览量:69685
-
MQTT入门
浏览量:91692
文章分类
最新评论
-
afateg:
阿里云的图是怎么画出来的?用什么工具?
各云服务平台的架构图 -
cbn_1992:
博主,采用jdbctoken也就是数据库形式之后,反复点击获取 ...
Spring Security OAuth2 Provider 之 数据库存储 -
ipodao:
写的很是清楚了,我找到一份中文协议:https://mcxia ...
MQTT入门(6)- 主题Topics -
Cavani_cc:
还行
MQTT入门(6)- 主题Topics -
fexiong:
博主,能否提供完整源码用于学习?邮箱:2199611997@q ...
TensorFlow 之 构建人物识别系统
Spring Boot便于开发支持嵌入式容器(比如:Apache Tomcat, Eclipse Jetty, RedHat Undertow),默认启动嵌入式Tomcat容器,当然也可以打包发不动独立的Servlet容器(比如:Apache Tomcat,WildFly等)。
(1)修改Tomcat版本
1.5.1.RELEASE默认采用的是8.5.11。
修改pom.xml,重新运行。
(2)修改端口号/web路径
1)修改SpringBoot自动配置项
src/main/resources/application.properties
再次访问 http://localhost:8081/springboot/
2)通过EmbeddedServletContainerCustomizer
Spring Boot提供了大量的xxxCustomizer类用于扩展已有功能,比如RestTemplateCustomizer、Jackson2ObjectMapperBuilderCustomizer、PlatformTransactionManagerCustomizer等等,这些都会在以后的开发中慢慢用到。
3)通过EmbeddedServletContainerFactory
(3)通过TomcatEmbeddedServletContainerFactory类优化Tomcat
1)开启SSL(HTTPS)
默认SpringBoot启动8080端口的HTTP服务,通过以下配置可以开启8443端口的HTTPS服务。
src/main/resources/application.properties
但是Spring Boot不支持通过application.properties同时支持HTTP和HTTPS。
可以通过在application.properties中设置HTTPS,在代码中添加Connector支持HTTP来实现。
2)AJP Connector
3)apr/apr-util/tomcat-native
前提是必须安装这些软件,并指定java.library.path参数给JVM。
(4)容器变更
以下以Tomcat->Jetty为例:
pom.xml
再次访问 http://localhost:8081/springboot/
(5)多容器配置
(1)修改Tomcat版本
1.5.1.RELEASE默认采用的是8.5.11。
引用
2017-02-07 16:23:44.964 INFO 8040 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.11
修改pom.xml,重新运行。
<properties> <tomcat.version>8.0.41</tomcat.version> </properties>
引用
2017-02-07 16:26:37.799 INFO 7372 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.0.41
(2)修改端口号/web路径
1)修改SpringBoot自动配置项
src/main/resources/application.properties
引用
server.port=8081
server.contextPath=/springboot
server.sessionTimeout=30
server.contextPath=/springboot
server.sessionTimeout=30
引用
2017-02-07 16:23:45.740 INFO 8040 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081 (http)
2017-02-07 16:23:45.746 INFO 8040 --- [ main] c.r.s.SpringBootDemo4Application : Started SpringBootDemo4Application in 2.178 seconds (JVM running for 2.668)
2017-02-07 16:24:16.474 INFO 8040 --- [nio-8081-exec-1] o.a.c.c.C.[.[localhost].[/springboot] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-02-07 16:24:16.474 INFO 8040 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2017-02-07 16:24:16.487 INFO 8040 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 13 ms
2017-02-07 16:23:45.746 INFO 8040 --- [ main] c.r.s.SpringBootDemo4Application : Started SpringBootDemo4Application in 2.178 seconds (JVM running for 2.668)
2017-02-07 16:24:16.474 INFO 8040 --- [nio-8081-exec-1] o.a.c.c.C.[.[localhost].[/springboot] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-02-07 16:24:16.474 INFO 8040 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2017-02-07 16:24:16.487 INFO 8040 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 13 ms
再次访问 http://localhost:8081/springboot/
2)通过EmbeddedServletContainerCustomizer
@Configuration public class ContainerConfig { @Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer container) { // Port Number container.setPort(8081); // Context Path container.setContextPath("/springboot"); // Session Timeout container.setSessionTimeout(30, TimeUnit.MINUTES); } }; } }
Spring Boot提供了大量的xxxCustomizer类用于扩展已有功能,比如RestTemplateCustomizer、Jackson2ObjectMapperBuilderCustomizer、PlatformTransactionManagerCustomizer等等,这些都会在以后的开发中慢慢用到。
3)通过EmbeddedServletContainerFactory
@Configuration public class ContainerConfig { @Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); tomcat.setPort(8081); tomcat.setContextPath("/springboot"); tomcat.setSessionTimeout(30, TimeUnit.MINUTES); return tomcat; } }
(3)通过TomcatEmbeddedServletContainerFactory类优化Tomcat
@Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() { @Override protected void postProcessContext(Context context) { // ... } }; tomcat.addAdditionalTomcatConnectors(initiateHttpConnector()); return tomcat; }
1)开启SSL(HTTPS)
默认SpringBoot启动8080端口的HTTP服务,通过以下配置可以开启8443端口的HTTPS服务。
src/main/resources/application.properties
引用
server.port=8443
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=password
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=password
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat
但是Spring Boot不支持通过application.properties同时支持HTTP和HTTPS。
可以通过在application.properties中设置HTTPS,在代码中添加Connector支持HTTP来实现。
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setPort(8080); tomcat.addAdditionalTomcatConnectors(connector);
2)AJP Connector
Connector ajpConnector = new Connector("AJP/1.3"); ajpConnector.setProtocol("AJP/1.3"); ajpConnector.setPort(9090); ajpConnector.setSecure(false); ajpConnector.setAllowTrace(false); ajpConnector.setScheme("http"); tomcat.addAdditionalTomcatConnectors(ajpConnector);
3)apr/apr-util/tomcat-native
前提是必须安装这些软件,并指定java.library.path参数给JVM。
LifecycleListener arpLifecycle = new AprLifecycleListener(); tomcat.setProtocol("org.apache.coyote.http11.Http11AprProtocol"); tomcat.addContextLifecycleListeners(arpLifecycle);
@Configuration public class ContainerConfig { @Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() { @Override protected void postProcessContext(Context context) { // ... } }; tomcat.setPort(8081); tomcat.setContextPath("/springboot"); tomcat.setSessionTimeout(30, TimeUnit.MINUTES); LifecycleListener arpLifecycle = new AprLifecycleListener(); tomcat.setProtocol("org.apache.coyote.http11.Http11AprProtocol"); tomcat.addContextLifecycleListeners(arpLifecycle); Connector ajpConnector = new Connector("org.apache.coyote.ajp.AjpAprProtocol"); ajpConnector.setPort(9090); ajpConnector.setSecure(false); ajpConnector.setAllowTrace(false); ajpConnector.setScheme("http"); tomcat.addAdditionalTomcatConnectors(ajpConnector); return tomcat; } }
(4)容器变更
以下以Tomcat->Jetty为例:
pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
@Bean public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory() { JettyEmbeddedServletContainerFactory container = new JettyEmbeddedServletContainerFactory(); // Port Number container.setPort(8081); // Context Path container.setContextPath("/springboot"); // Session Timeout container.setSessionTimeout(30); return container; }
引用
2017-02-07 16:27:50.802 INFO 452 --- [ main] .s.b.c.e.j.JettyEmbeddedServletContainer : Jetty started on port(s) 8081 (http/1.1)
2017-02-07 16:27:50.805 INFO 452 --- [ main] c.r.s.SpringBootDemo4Application : Started SpringBootDemo4Application in 2.172 seconds (JVM running for 2.67)
2017-02-07 16:27:50.805 INFO 452 --- [ main] c.r.s.SpringBootDemo4Application : Started SpringBootDemo4Application in 2.172 seconds (JVM running for 2.67)
再次访问 http://localhost:8081/springboot/
(5)多容器配置
@Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer container) { // Port Number if (TomcatEmbeddedServletContainerFactory.class.isAssignableFrom(container.getClass())) { TomcatEmbeddedServletContainerFactory tomcat = TomcatEmbeddedServletContainerFactory.class.cast(container); tomcat.setPort(8081); } if (JettyEmbeddedServletContainerFactory.class.isAssignableFrom(container.getClass())) { JettyEmbeddedServletContainerFactory jetty = JettyEmbeddedServletContainerFactory.class.cast(container); jetty.setPort(8082); } if (UndertowEmbeddedServletContainerFactory.class.isAssignableFrom(container.getClass())) { UndertowEmbeddedServletContainerFactory undertow = UndertowEmbeddedServletContainerFactory.class.cast(container); undertow.setPort(8083); } // Context Path container.setContextPath("/springboot"); // Session Timeout container.setSessionTimeout(30, TimeUnit.MINUTES); } }; }
发表评论
-
Spring Boot 入门 - 进阶篇(8)- 应用监控(Actuator)
2017-03-16 14:57 17572作为Spring Boot的另外一大亮点,就是actuator ... -
Spring Boot 入门 - 进阶篇(7)- 自动配置(AutoConfigure)
2017-03-16 11:05 62259自动配置是Spring Boot的最大亮点,完美的展示了CoC ... -
Spring Boot 入门 - 进阶篇(6)- 启动加载(CommandLineRunner)
2017-03-15 15:04 15090启动成功后可以通过以下方法运行自己的初始代码: @PostCo ... -
Spring Boot 入门 - 进阶篇(5)- 数据缓存(@Cacheable)
2017-03-14 16:28 34670缓存可以缓解数据库访 ... -
Spring Boot 入门 - 进阶篇(4)- REST访问(RestTemplate)
2017-03-14 11:07 45283经常需要发送一个GET/POST请求到其他系统(REST AP ... -
Spring Boot 入门 - 进阶篇(3)- 定时任务(@Scheduled)
2017-03-13 13:23 23752主要用于定时发送邮件、夜间自动维护等。 (1)开启定时任务功 ... -
Spring Boot 入门 - 进阶篇(2)- 异步调用(@Async)
2017-03-07 15:59 20085异步处理 Java的异步处理Thread/Runnable、 ... -
Spring Boot 入门 - 进阶篇(1)- Servlet、Filter、Listener、Interceptor
2017-03-07 10:39 10612用户认证授权、日志记录MDC、编码解码、UA检查、多端对应等都 ... -
Spring Boot 入门 - 基础篇(15)- 工程部署
2017-02-16 15:31 9052(1)开发阶段 一般开发过程: 1)-写代码 2)- [Ru ... -
Spring Boot 入门 - 基础篇(14)- 参数设置
2017-02-16 15:25 5733(1)读取优先顺序 a - 命令行参数 --key=val ... -
Spring Boot 入门 - 基础篇(13)- 异常处理
2017-02-16 10:23 8670先要了解Spring的异常处理:http://rensanni ... -
Spring Boot 入门 - 基础篇(12)- 数据校验
2017-02-16 09:53 19918除过在客户端做JavaScript数据校验外,服务器端做数据校 ... -
Spring Boot 入门 - 基础篇(11)- 数据源配置
2017-02-15 11:12 16399(1)单一数据源 默认Spring Boot会在classp ... -
Spring Boot 入门 - 基础篇(10)- 发送邮件
2017-02-14 10:04 2484(1)配置 pom.xml <dependency> ... -
Spring Boot 入门 - 基础篇(9)- 文件上传下载
2017-02-14 10:01 15888(1)单文件上传 Form方式 <form id=&qu ... -
Spring Boot 入门 - 基础篇(8)- 数据库操作
2017-02-10 16:17 8672(1)导入mybatis-spring-boot-starte ... -
Spring Boot 入门 - 基础篇(7)- 国际化
2017-02-10 13:58 13143Spring Boot默认支持国际化配置,只需要添加配置文件即 ... -
Spring Boot 入门 - 基础篇(6)- 页面模板
2017-02-09 15:00 6467Spring Boot支持很多模板引擎,但嵌入式容器JSP有限 ... -
Spring Boot 入门 - 基础篇(5)- 使用WebJars
2017-02-09 14:20 11746WebJars能使Maven的依赖管理支持OSS的JavaSc ... -
Spring Boot 入门 - 基础篇(4)- 静态资源
2017-02-09 13:10 10700静态资源包括:HTML、CSS、JS、图像、视频、PDF/Of ...
相关推荐
本篇文章主要介绍了 Spring Boot 中使用 LDAP 来统一管理用户信息的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。下面我们将详细介绍 LDAP 的基础概念和在 Spring Boot 中如何使用 LDAP 来统一管理用户...
在本篇Spring Boot笔记中,我们将探讨Spring Boot的核心特性、如何创建一个简单的Spring Boot应用以及相关的Maven配置。Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程,提供了一种...
1. **Spring Boot基础知识**:了解Spring Boot的基本概念,包括其设计目标、主要特性以及与其他Spring框架的关系。 2. **起步依赖(Starter)**:Spring Boot通过起步依赖提供了一种快速配置各种功能的方式,如Web...
通过阅读 "Spring boot(一): 入门篇.pdf" 和 "Spring boot(二):web综合开发.pdf",你可以深入了解 Spring Boot 的基本概念、快速上手指南以及如何进行 Web 应用的综合开发。这些资料将引导你从初识 Spring Boot 到...
- **基础篇**:介绍 Spring Boot 的基本概念、安装和配置等基础知识。 - **进阶篇**:探讨如何利用 Spring Boot 构建复杂的应用程序,包括安全性和性能优化等方面。 - **实践篇**:提供一系列实战案例,涵盖微服务...
本篇笔记将介绍Spring Boot的核心概念、微服务架构、环境准备、入门案例以及相关开发工具的配置方法。 1. Spring Boot简介 Spring Boot是由Pivotal团队提供的开源框架,它使用“约定优于配置”的原则,旨在简化...
本篇文章将深入探讨如何将一个基于 Spring Boot 的应用程序部署到 AWS 的 Elastic Beanstalk 平台上。 **Elastic Beanstalk 介绍** Elastic Beanstalk 是 AWS 提供的一种完全托管的服务,它允许开发者轻松部署和...
一、Spring Boot基础 Spring Boot是Spring框架的扩展,它简化了Spring应用的初始搭建以及配置过程。其核心特性包括自动配置、起步依赖和运行时嵌入式服务器,使得开发者能够快速启动项目。在我们的web商城系统中,...
《Spring Boot全方位解析:从入门到精通》 Spring Boot,作为Java生态系统中的明星框架,以其“开箱即用”的特性,极大地简化了Spring应用的初始搭建以及开发过程。本篇文章将深入探讨Spring Boot的核心概念、关键...
Spring Boot简化了Spring应用的初始搭建和配置,它默认配置了许多常见的功能,如嵌入式Servlet容器、自动配置等,使得“起步运行”变得简单。 8. **Spring Cloud** Spring Cloud是基于Spring Boot的微服务生态,...
1. **Spring Boot基础知识**: - **起步依赖(Starters)**:Spring Boot通过一系列的起步依赖,如`spring-boot-starter-web`、`spring-boot-starter-data-jpa`等,帮助开发者快速引入所需功能模块。 - **嵌入式...
Spring Boot 是一个流行的Java开发框架,它简化了创建生产级的、基于Spring的应用程序。集成HTTPS是Spring Boot项目中的一项重要安全配置,因为HTTPS能够确保数据传输的安全性,防止中间人攻击,保护用户隐私。本篇...
本篇文档主要介绍了如何将Spring Security与Spring Boot进行集成,并实现基本的认证功能。具体的技术选型如下: - **Spring Boot 版本**: 2.1.3 - **Spring Security** - **数据库**: MySQL - **持久层框架**: ...
2. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,无需额外部署到外部容器。 3. **自动配置**:Spring Boot根据类路径中的jar文件自动配置Spring容器。例如,如果类路径下有`...
#### 一、Spring Boot 快速入门及基础知识 - **Spring Boot 简介**: - **定义**:Spring Boot 是 Spring 家族中的一个新成员,旨在简化 Spring 应用的初始搭建以及开发过程。 - **优势**: - 自动配置:Spring ...
例如,对于Spring Boot基础依赖、AOP支持以及Mybatis的集成,我们需要以下依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-aop <!-- Mybatis 集成 --> <groupId>org....
2. **Spring Boot入门** - **自动配置**:Spring Boot的核心特性之一,根据项目依赖自动配置相关组件。 - **起步依赖**:通过引入特定的起步依赖(Starter POMs),可以快速引入所需功能模块,如spring-boot-...
#### 一、Spring Boot基础篇 ##### 1.1 Spring Boot简介 - **定义**:Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化新Spring应用的初始搭建以及开发过程。 - **特点**: - 约定优于配置(Convention...
02、尚硅谷_SpringBoot_入门-Spring Boot简介 03、尚硅谷_SpringBoot_入门-微服务简介 04、尚硅谷_SpringBoot_入门-环境准备 05、尚硅谷_SpringBoot_入门-springboot-helloworld 06、尚硅谷_SpringBoot_入门-...
- **嵌入式容器**:Spring Boot支持将Tomcat、Jetty等Web服务器内置到应用中,不需要独立部署。 - **依赖管理**:提供了一套依赖管理系统,开发者只需声明依赖,而不需要指定版本号。 - **外部配置**:支持外部配置...