• SpringBoot详解


    Spring Boot介绍:

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者

    什么是springboot ?

    用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 

    创建独立的spring引用程序 main方法运行 

    嵌入的Tomcat 无需部署war文件 

    简化maven配置 

    自动配置spring添加对应功能starter自动化配置 

    spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用

    Spring Boot有哪些优点? 

    -快速创建独立运行的spring项目与主流框架集成 

    -使用嵌入式的servlet容器,应用无需打包成war包 

    -starters自动依赖与版本控制 

    -大量的自动配置,简化开发,也可修改默认值 

    -准生产环境的运行应用监控 

    -与云计算的天然集成

    SpringBoot所具备的特征:

    1. 可以创建独立的Spring应用程序,并且基于其Maven或者Gradle插件,可以创建可执行的JARs和WARs;

    2. 内嵌Tomcat或Jetty等Servlet容器;

    3. 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;

    4. 尽可能自动配置Spring容器;

    5. 提供准备好的特性,如指标、健康检查和外部化配置;

    6. 绝对没有代码生成,不需要XML配置;

    SpringBoot启动类中的注解:

    @StringBootApplication注解标明此类为启动类

    @StringBootApplication注解是SpringBoot项目的核心注解,目的是开启自动配置

    在这个配置中包含了以下三种注解:

    @StringBootConfiguration(此注解意思为:标明此类为配置类)继承了@Configuration注解,用来加载配置文件

    @EnableAutoConfiguration(此注解意思为:自动配置)

    @ComponentScan(此注解意思为:扫描包实例化)递归扫描

    SpringBoot和SpringCloud的不同?

    SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务

    而SpringCloud专注于解决各个微服务之间的协调与配置,服务之间的通信,熔断,负载均衡等

    技术维度并相同,并且SpringCloud是依赖于SpringBoot的,而SpringBoot并不是依赖与SpringCloud,甚至还可以和Dubbo进行优秀的整合开发

    总结:

    SpringBoot专注于快速方便的开发单个个体的微服务

    SpringCloud是关注全局的微服务协调整理治理框架,整合并管理各个微服务,为各个微服务之间提供,配置管理,服务发现,断路器,路由,事件总线等集成服务

    SpringBoot不依赖于SpringCloud,SpringCloud依赖于SpringBoot,属于依赖关系

    SpringBoot专注于快速,方便的开发单个的微服务个体,SpringCloud关注全局的服务治理框架

    Thymeleaf模板:

      Thymeleaf代替了我们之前web开发的JSP它也可以轻易的与Springmvc等web框架进行集成

    Thymeleaf特点:

      能直接在浏览器中打开并正确,显示模板页面,不需要重启整个web应用

    由于Thymeleaf使用了XMLDOM解析器,因此它并不适合用于处理大规模的XML文件

    共享Session:

    1、引入redis依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
    </dependency>

    2、添加注解

    @EnbaleRedisHttpSession(maxIncativeIntervaLInsecands=46561*50)

    maxIncativeIntervaLInsecands:设置Session失效时间

    SpringBootJpa:

      Java持久化规范、它的出现主要是为了简化,现有的持久化开发工作和整合ORM技术

      SpringBoot是Spring基于ORM框架,JPA规范的基础上封装的一套JPA应用框架,可以大大提高开发效率

      SpringBootJpa默认预先生成了一些基本的CURD方法:例如增删改查等

    SpringBoot中应当注意的注解及其作用:

      @PathVariable是spring3.0中的一个新功能;能接受请求路径中占位符的值,获取url中的数据

    @RestControllerAdvice注解和@ControllerAdvice的注解区别:
    注解有@ControllerAdvice的类,需要在具体方法上同时添加@ExceptionHandler和@ResponseBody注解;

    注解有@RestControllerAdvice的类,只需要在具体方法上添加@ExceptionHandler注解;

    @ExceptionHandler注解用来捕获并统一处理,减少代码重复率和复杂度

    @Resource和@Autowired注解都是用来实现依赖注入的

    区别:

    @Autowired注解是按by type自动注入;

    @Resource注解默认按byName自动注入

    @Resource注解有两个重要属性,分别是name和type

    @RequestBody和@RequestParam的区别:

    @RequestBody可以将body里面所有的json数据传入后端,后端进行解析;

    @RequestBody一般用户处理application/json、application/xml等类型的数据;

    @RequestBody不适用于GET请求,原因:GET请求中没有HttpEntity

    @RequestParam注解接受的参数是来自Http请求或url请求

    @RequestParam注解可以接受简单类型属性,也可以接收对象类型

    @RequestParam注解通常用来处理Content-Type为application/x-www-form-urlencoded编码的内容(这里指form表单数据)

    @RequestParam注解无法读取json格式数据

    Contnet-Type总结:

    form表单请求数据类型(application/x-www-form-urlencoded),不可以用@RequestBody注解;可以使用@RequestParam注解

    application/json:json字符串用@RequestBody注解

     

    @Compent注解把普通pojo实体类实例化到Spring容器中

    @MapperScan注解:递归扫描,比如扫描com.zy下的mapper包,例如:MapperScan("com.zy.Mapper")

    @Entity:标明该类是一个实体类

    @Table:当实体类与映射数据库表名不同时,需要使用比如:@Table(name="user_home",shema="test")

    @SpringBootTest:标明这个类是测试类

    @Runwith:运行测试类,相当于运行器

    @EnableCaching注解:是Springframework中注解驱动的缓存管理功能

     

    @Controller和@RestController区别:

      在对应的方法上,视图解析器可以解析return的JSP、HTML页面并且跳转到相对应的页面使用@Controller注解

    若返回json字符串内容到页面,则需要加@RestController注解

     

  • 相关阅读:
    开源数据访问组件Smark.Data 1.8
    .NET应用加载容器KGlue
    TCP&UDP压力测试工具
    使用Beetle.Express简单构建高吞吐的TCP&UDP应用
    通过分析内存来优化.NET程序
    winsock I/O模型
    C++各大有名库的介绍
    深入研究 STL Deque 容器An InDepth Study of the STL Deque Container (By Nitron)
    C C++编程子资料库(小程序)
    VSS服务器安装配置(比较完整的一篇VSS服务器配置的文章)
  • 原文地址:https://www.cnblogs.com/beiweihaohao/p/14681268.html
Copyright © 2020-2023  润新知