Spring Boot

一.SpringBoot与Spring的区别

Spring优点:

开源,轻量级,非侵入式的一站式框架,简化企业级应用开发。

控制反转(IOC),依赖注入(DI)降低了组件之间的耦合性,实现了软件各层之间 的解耦。

面向切面(AOP),利用它可以很容易实现一些拦截,如事务控制等。

spring 对于主流的应用框架提供了很好的支持,例如 mybatis。 spring

Spring缺点:

虽然 spring 的组件代码是轻量级的,但它的配置却是重量级的。虽然 spring 引入了注解功能,但是仍然需要编写大量的模板化配置文件. 项目的依赖管理也是一件耗时耗力的事情,在环境搭建时,需要分析要导入大 量库的坐标,而且还需要分析导入与之有依赖关,一旦选错依赖的版本,随之而 来的不兼容问题就会严重阻碍项目的开发进度。

区别:

1、Spring Boot提供极其快速和简化的操作,让 Spring 开发者快速上手。

2、Spring Boot提供了 Spring 运行的默认配置。

3、Spring Boot为通用 Spring项目提供了很多非功能性特性

二.SpringBoot概述

   Spring Boot 是由 Pivotal 团队提供的在 spring 框架基础之上开发的框架, 其设计目的是用来简化应用的初始搭建以及开发过程。

   Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用 于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是 用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开 发者体验的工具.

   Spring Boot 以约定大于配置的核心思想,从而使开发人员不再需要定义样 板化的配置。它集成了大量常用的第三方库配置(例如 Redis,Jpa RabbitMQ, Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用, 通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域成为领导 者。

SpringBoot特点

 创建独立的 spring 应用程序

 直接内嵌 tomcat、jetty 和 undertow

 提供了固定化的“starter”配置,以简化构建配置

 尽可能的自动配置 spring 和第三方库

 提供产品级的功能,如:安全指标、运行状况监测和外部化配置等

 绝对不会生成代码,并且不需要 XML 配置

SpringBoot的核心功能

起步依赖

起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

自动配置

Spring Boot 的自动配置是一个运行时(更准确地说,是应用程序启动时) 的过程,考虑了众多因素,才决定 Spring 配置应该用哪个,不该用哪个。该过 程是 Spring 自动完成的。

SpringBoot开发环境构建

    官网配置生成

    https://start.spring.io/

    选择配选项,在线生成并下载

    解压后修改 pom.xml 版本为 2.6.6,删除.mvn 文件夹,mvnw.cmd 文件

    导入到 idea 中

导入idea后,Springboot 集成 web 组件后,内置了 tomcat 服务器,一个 springboot 应用相 当于一个独立的服务,可以使用启动类中的 main 方法启动 springboot 程序.

在线生成启动 logo: https://www.bootschool.net/ascii

下载存放在 resources 目录下即可.

SpringBoot配置文件

SpringBoot使用一个全局的配置文件(配置文件名是固定的)

  application.properties 属性文件格式,内容为键值对

  server.port=8080

application.yml

  yml 是 YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心.

yml 配置示例

server:

   port: 8080

yaml基本语法:

语法结构:key:空格 value

以此来表示一对键值对(空格不能省略);以空格的缩进来控制层级关系, 只要是左边对齐的一列数据都是同一个层级的。

值的写法

字面量:普通的值[数字,布尔值,字符串]

字面量直接写在后面就可以,字符串默认不用加上双引号或者单引号;

三.SpringBoot集成JDBC

1.导入相关依赖

<!--mysql的数据库驱动依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.16</version>
</dependency>

<!--Spring Boot 中用于支持 JDBC的依赖-->
<dependency>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

2.在配置文件里配置数据源信息(.yml文件为例)

spring:

  datasource:

  url: jdbc:mysql://localhost:3306/newsdbserverTimezone=Asia/Shanghai

  username: root

  password: 123456

  driver-class-name: com.mysql.cj.jdbc.Driver

  type: com.alibaba.druid.pool.DruidDataSource #指定数据源对象, 还需要创建DruidDataSource对象

  intialSize: 5 #数据库连接池相关配置

  max-active: 20

整合阿里数据源

1.导入阿里数据源jar

<!--整合阿里数据源-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

2.在配置文件里注册阿里数据库连接池

type: com.alibaba.druid.pool.DruidDataSource #指定数据源对象, 还需要创建DruidDataSource对象

intialSize: 5 #数据库连接池相关配置
minIdle: 1 最小连接池数量

max-active: 20最大连接池数量

四.SpringBoot集成mybatis

1.导入相关依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

2.在application.xml中配置数据源信息

​
mybatis:
    type-aliases-package: com.ff.cms.bean  #使用包下的别名
    mapper-locations: classpath:mapper/*Mapper.xml #实现接口与 mapper文件的绑定
    configuration:   #这是mybatis里的settions配置
        map-underscore-to-camel-case: true  #开启驼峰命名功能
        cache-enabled: true  #开启二级缓存

​

启动类上添加@MapperScan("接口所在的包地址")@MapperScan("接口所在 的包地址")

或者在接口上添加@Mapper

注解

1.重要注解

      启动类上的注解

     @SpringBootApplication

     是springboot中最核心的注解标签,触发类加载功能, 是一个组合标签, 里面包含七个注解

@AutoConfigurationPackage
就是添加该注解的类所在的包作为自动配置包进行管理
@ComponentScan

这个注解会让spring去扫描某些包及其子包中所有的类,然后将满足一定条件的类作为bean注册到spring容器容器中。

@SpringBootConfiguration

这里面又有一个configuration注解, 表明这是一个配置类, 他里面又是一个@Component修饰, 表明被spring管理

@EnableAutoConfiguration

它表示开启自动配置功能

@ComponentScan

用来将指定包(如果未指定就是将当前类所在包及其子孙包)加入SpringIOC的包扫描,本质上等于<context:component-scan/>配置

@MapperScan("接口全类名")

扫描接口所在的包, 生成接口的代理对象

2.声明Bean的注解

/*
 声明Bean的注解:
    @Component : 在pojo对象层使用
    @Service : 在业务逻辑层(service层)使用
    @Repository : 在数据访问层(dao层)使用.
    @Controller : 在控制层(web)使用  
    	控制层[控制层一般使用@RestController]
*/

3.注解

@RequestMapping(path="")
  处理请求地址映射的注解

@RequestParam("参数名称")
接受前端请求里的参数, 只能接受URL里的参数

@RequestBody("参数名称")
主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)


@ConfigurationProperties(prefix="spring.datasource")
把配置文件的信息,读取并自动封装成实体类
该注解可以读取配置文件spring.datasource开头的键值对

@Value("${spring.datasource}")
功能与@ConfigurationProperties相同

@Configuration
在类上加, 指定该类是配置类, 在程序加载时会加载

@Autowired
从Spring容器获取对象

@Bean
作用在方法上, 此方法会返回一个对象, 交给Spring框架去管理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值