SpringBoot微服务

一,Springboot介绍

Springboot介绍

SpringBoot 是一个快速开发的框架, 封装了Maven常用依赖、能够快速的整合第三方框架;简化XML配置,全部采用注解形式,内置Tomcat、Jetty、Undertow,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。

SpringBoot原理介绍:

  1. 能够帮助开发者实现快速整合第三方框架 (原理:Maven依赖封装)
  2. 去除xml配置 完全采用注解化 (原理:Spring体系中内置注解方式)
  3. 无需外部Tomcat、内部实现服务器(原理:Java语言支持创建Tomcat服务器)

SpringBoot和SpringMVC区别

SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。
SpringMVC是控制层。

SpringBoot和SpringCloud区别

SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。
SpringMVC是控制层。
SpringCloud依赖与SpringBoot组件,使用SpringMVC编写Http协议接口,同时SpringCloud是一套完整的微服务解决框架。

使用注解的优势:

1.采用纯java代码,不在需要配置繁杂的xml文件

 2.在配置中也可享受面向对象带来的好处

 3.类型安全对重构可以提供良好的支持

 4.减少复杂配置文件的同时亦能享受到springIoC容器提供的功能

SpringBoot核心注解

重要注解:
1.@RestController
在上加上RestController 表示修饰该Controller所有的方法返回JSON格式,直接可以编写
Restful接口
2.@EnableAutoConfiguration
注解:作用在于让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置
这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
3. SpringApplication.run(HelloController.class, args);
标识为启动类

SpringBoot有几种启动方式

1、SpringBoot启动方式1
Springboot默认端口号为8080

@RestController
@EnableAutoConfiguration
public class HelloController {
	@RequestMapping("/hello")
	public String index() {
		return "Hello World";
	}	
public static void main(String[] args) {
		SpringApplication.run(HelloController.class, args);
	}
}

启动主程序,打开浏览器访问http://localhost:8080/index,可以看到页面输出Hello World

2.SpringBoot启动方式2

@ComponentScan(basePackages = "com.mayikt.controller")---控制器扫包范围
@ComponentScan(basePackages = "com.mayikt.controller")
@EnableAutoConfiguration
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

3,SpringBoot启动方式3
@SpringBootApplication

@SpringBootApplication 被 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰,换言之 Springboot 提供了统一的注解来替代以上三个注解
扫包范围:在启动类上加上@SpringBootApplication注解,当前包下或者子包下所有的类都可以扫到。

SpringBoot好处

  1. 简化配置,不需要编写太多的xml配置文件;
  2. 基于Spring构建,使开发者快速入门,门槛很低;
  3. SpringBoot可以创建独立运行的应用而不需要依赖于容器;
  4. 内置tomcat服务器,不需要打包成war包,可以直接放到tomcat中运行;
  5. 提供maven极简配置,以及可视化的相关监控功能,比如性能监控,应用的健康程度等;
  6. 为微服务SpringCloud奠定了基础,使得微服务的构建变得简单;
  7. Spring可以整合很多各式各样的框架,并能很好的集成;
  8. 活跃的社区与论坛,以及丰富的开发文档;

Springboot缺点

  1. 依赖太多,一个spring boot项目就有很多
  2. 缺少服务的注册和发现等解决方案
  3. 缺少监控集成方案,安全管理方案
  4. 版本迭代速度很快,一些模块改动很大。
  5. 由于不用自己做配置,报错时很难定位。
  6. 网上现成的解决方案比较少。