首页 > 经验记录 > Spring Boot以及微服务

Spring Boot以及微服务

先抛出一个微服务概念:
微服务是一种以业务功能为主的服务设计概念,每一个服务都具有自主运行的业务功能,对外开放不受语言限制的API (最常用的是HTTP),应用程序则是由一个或多个微服务组成。
 
 
现在的web项目几乎都会用到spring框架,而要使用spring就会要需要配置多的一批的xml配置文件。
而springboot的出现解决了这一问题,一个项目甚至不用部署到服务器上直接开跑。用起来真是爽的起飞。
可以非常方便、快速搭建项目,不用关心框架之间的兼容性,适用版本等各种问题,想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。
 
在IDEA里边,创建项目直接选择Spring Initializr 这个选项,然后跟着一步步走就行了。
如果是eclipse可以进这个网站,选择选项然后点大绿按钮 Generate Project,就可以生成一个SpringBoot项目,然后导进去就行了。
 
SpringBoot的特性:
1、无需手动管理依赖jar包的版本
Spring-boot-*的jar包已对一些功能性jar包进行了集成,示例如下:

  • spring-boot-starter 核心Spring Boot starter,包括自动配置支持,日志和YAML
  • spring-boot-starter-actuator 生产准备的特性,用于帮你监控和管理应用
  • spring-boot-starter-web 对全栈web开发的支持,包括Tomcat和 spring-webmvc
  • spring-boot-starter-aop 对面向切面编程的支持,包括 spring-aop和AspectJ
  • spring-boot-starter-jdbc 对JDBC数据库的支持
  • spring-boot-starter-security 对 spring-security 的支持
  • spring-boot-starter-amqp 通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol)。
  • spring-boot-starter-ws 支持Spring Web Services。
  • spring-boot-starter-redis 支持Redis键值存储数据库,包括spring-redis。
  • spring-boot-starter-test 支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

 
2、独立运行的Spring项目
Spring Boot默认将应用打包成一个可执行的jar包文件,构建成功后使用java -jar命令即可运行应用。
或者在应用项目的主程序中运行main函数即可,不需要依赖tomcat、jetty等外部的应用服务器。
其中内置的servlet Container:

Tomcat 8 3.1 Java 7+
Tomcat 7 3.0 Java 6+
Jetty 9.3 3.1 Java 8+
Jetty 9.2 3.1 Java 7+
Jetty 8 3.0 Java 6+

此外,仍然可以部署Spring Boot项目到任何兼容Servlet3.0+的容器。
 
3、自动配置,无需xml

  • Spring Boot尝试根据你添加的jar依赖自动配置你的应用。例如,如果HSQLDB在类路径中,并且你没有手动配置任何db连接bean,则Spring Boot会自动配置一个内存db。
  • 使用@EnableAutoConfiguration或者@SpringBootApplication注解,配合@Configuration注解类,即可达到自动配置的目的。
  • Spring Boot的这种自动配置是非侵入式的,你可以定义自己的配置或bean来替代自动配置的内容。

 
4、外部化配置
Spring Boot可以使用properties文件,YAML文件,环境变量,命令行参数等来外部化配置。属性值可以使用@Value注解直接注入到bean中,并通过Spring的Environment抽象或经过@ConfigurationProperties注解绑定到结构化对象来访问。实例如下:

@Component
@ConfigurationProperties(prefix="spring.datasource")
public class ApplicationUtil {
  private String name;
  private String url;
}

 
 
 
5、嵌入式servlet容器
Spring Boot的web模块内置嵌入的Tomcat, Jetty, Undertow来构建自包含的Servlet容器。web应用打包成可执行jar包时,相应的servlet 容器也会被嵌入到应用jar中。
并且servlets, filters和listeners都可以通过声明为bean来被容器注册。servlet容器还可以通过外部化配置来相关定制属性,如server.port, server.session.persistence等。
application.yml配置server的端口号和session超时时间,需要注意的是,使用.yml时,属性名的值和冒号中间必须有空格,如下:
 
server:
port: 8888
session-timeout: 60
 
6、开启devtools特性
devtools的热部署和自动重启
要想在Eclipse中使用Devtools的重启功能,需要将自动编译功能打开。每次保存文件并自动编译后,devtools会检测到classpath内容的修改,并触发应用重启。重启时实际只重新加载了一部分类,因此速度会非常快。

  • devtools的livereload

开启devtools特性的应用在启动时会启动一个livereload的server,在浏览器(如chrome,Firefox)安装livereload插件后,该插件会监测到livereload server的更新,并自动刷新页面。
 
 

           


CAPTCHAis initialing...
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00