SpringBoot

分布式和微服务

单体应用:系统界面、静态资源、业务组件等都会在一个工程里,将来发布需要全部发布到一台tomcat服务器上。


分布式:将一个系统的界面、静态资源、业务处理进行拆分,发布到不同的服务器上,然后用户请求过来,调用多个服务器资源处理,给用户响应。


微服务:属于开发分布式应用的架构思想,将大型系统的业务处理部分,进行微型化拆分,拆分出的业务可以独立部署,
	这些业务之间可以通过协议进行调用,从而实现一个完整业务处理。
优点:提升系统的性能、扩展性。

微服务架构技术主流有以下两种:

1. SpringBoot+SpringCloud (国外,Pivotal)

2. Dubbo+Zokeerper(国内,阿里)

SpringBoot

SpringBoot是对Spring框架及其相关技术进行的封装,可以简化Spring应用搭建和开发过程。(敏捷开发)

SpringBoot优点:

1. 去除了XML配置方式,完全采用Java配置方式
2. 内置tomcat服务器,自动发布应用(main方法启动)
3. 基于jar包方式发布程序
4. 提供一系列的启动器(jar包集合),便于导入
5. 采用properties或yml文件做配置
6. 提供了自动配置机制,自动创建一些常用对象,例如JdbcTemplate、DataSource、DispatcherServlet等

MAVEN

MAVEN是一个项目构建工具,可以对创建、编译、打包、生成文档等过程进行管理。maven工程都有一个pom.xml文件,
 通过在pom.xml追加定义,实现jar包和工具的导入。

MAVEN优点:一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,
 以及一种简单的方式在多个项目中共享JARs。

SpringBoot程序结构

1. pom.xml导入boot启动器

spring-boot-starter-parent //启动器父项,统一控制版本、jdk版本、编码等
spring-boot-starter  //spring核心、boot自动配置、yaml解析等
spring-boot-starter-jdbc //spring-jdbc、hikari
spring-boot-starter-web  //springmvc、jackson、restful、tomcat
spring-boot-starter-test //spring-test、junit
spring-boot-starter-data-redis //spring-data-redis
spring-boot-starter-data-jpa   //spring-data-jpa
spring-boot-devtools //热启动,代码修改后自动重启

2. 添加application.properties或者application.yml

properties格式

	server.port=8888

yml格式

	server:
	 port: 8888

3. 添加启动类RunXxxx


	@SpringBootApplication
	public class RunBoot {
	
		public static void main(String[] args) {
			SpringApplication.run(RunBoot.class);
		}
	
	}

4. 业务处理组件(Controller、Service、Dao等)

注意:业务组件一定要放在启动类包下或子包下。

SpringBoot程序启动过程

1. Boot程序启动入口为SpringApplication.run(RunBoot.class, args);
2. 静态run方法内部创建了一个SpringApplication对象,并且执行该对象的run方法
3. 创建SpringApplication对象时,做了一些初始化工作加载Initializers和Listeners组件(根据spring.factories定义加载)
4. run方法内部会创建一个Spring容器对象ApplicationContext(根据底层Env环境不同创建不同的ApplicationContext)
5. run方法内部还会加载启动Logo Banner信息
6. run方法内部对ApplicationContext容器进行各项信息设置,例如bean对象(refreshContext),环境参数(prepareContext),启动Banner等
7. 如果有tomcat等服务器启动服务器,发布程序执行
posted @ 2020-09-03 18:11  火星的巧克力  阅读(112)  评论(0编辑  收藏  举报
/* 返回顶部代码 */ TOP