SpringBoot知识点

6 篇文章 0 订阅
4 篇文章 0 订阅

SpringBoot知识点

1.回顾Spring

优点

开源的,轻量级的(Spring的组件代码),非侵入时的一站式框架,简化企业级应用开发。

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

面向切面(AOP),利用它可以很容易实现一些拦截,如事务控制等。可以把一些独立的功能抽取到一个切面中去,在不改变原来代码的基础上对我们的代码进行功能上的增强。

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

​ Spring提供自己的MVC实现。

缺点

 配置是重量级的(配置很麻烦,“废话”很多,例如配置开启事务(事务在现在的项目中是必要的)、开启注解等 。虽然Spring引入了注解功能,但是仍然需要编写大量的模板化配置文件。

​ 项目的依赖管理比较麻烦(jar包相关吗,需要的jar包如:数据库,gson,日志,spring相关,阿里数据源,mybatis,文件上传组件),需要分析要导入大量库的坐标,而且还需要分析导入与之有关依赖,一旦选择错依赖版本,随之人来的不兼容问题就会严重阻碍项目的开发进度。

​ Spring Boot对上述Spring的缺点进行改善和优化,基于约定由于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

2.Spring Boot概述

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

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

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

​ spring官网:spring.io

​ Spring Boot你只需要“run"就可以非常轻易的构建独立的、生产级别(公司里面商业级别的)的Spring应用。大部分Spring Boot应用只需要很少的配置。(必须要配的:数据库连接、扫描Mapper.xml所在的包)

Spring Boot特点(官网)

​ 创建独立的spring应用程序

​ 直接内嵌tomcat、jetty和undetow

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

​ 尽可能的自动配置,如:安全指标、运行状况监测和外部化配置等

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

Spring Boot的核心功能

起步依赖

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

自动配置

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

3.Spring Boot开发环境的搭建

方式1.在官网上搭建

搭建网址:http://start.Spring.io/ 选择配置选项,在线生成并下载

在这里插入图片描述

方式2:idea自动生成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四步,选择依赖组件,如Web--->springWeb,SQL --->JDBC API,Mybatis Framework,MySQL Driver等。

​ 补充:在线生成启动 logo网址:https://www.bootschool.net/ascii ,下载存放在 resources 目录下即可。

spring Boot 配置文件

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

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

​ server.port=8080

application.yml

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

yml配置示例

​ server:

​ port:8080

yaml 基本语法:

	语法结构:key:空格 value

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

spring Boot 自动配置

spring实现自动装配的核心仍然是使用注解标签。

@SpringBootApplication是springboot的核心注解,其中包含@SpringBootConfiguration,@EnableAutoConfiguration,@ComponmentScan

@ComponmentScan :对启动类所在类的包中的类扫描,它默认扫描的是与该类同级的类或者同级包下的所有类。

@SpringBootConfiguration:通过源码得知它是一个@Configuration,相当于之前的配置文件功能。扫描带有@Configuration注解标签的类(等同于之前的xml文件)

@EnableAutoConfiguration:自动装配的注解标签 最重要的,根据我们的配置,去加载一些第三方组件.是这里最重要的注解,它实现了对Spring Boot应用自动装配的功能。它的配置数据在 META-INF/spring.factories 中,我们打开 spring-boot-autoconfigure jar 中 的该文件,发现对应着许多个 XXXAutoConfiguration 配置类。

@Import({AutoConfigurationImportSelector.class})  加载选择器在 spring-boot-autoconfigure-2.4.7.jar /META-INF /spring.factories 文件中,结合pom.xml文件中所添加的依赖进行自动装配

@Configuration :加入@Configuration注解,表明这就是一个配置类。有一个 myBean()的方法 ,并用@Bean 进行注释,返回一个 MyBean()的实例,表明这个方法是需要被 Spring 进行管理的 bean。@Bean 如果不指定名称的话,默认使用 myBean 名称,也就是小写的名称。

@Bean:相当于 XML 中的,放在方法的上面,而不是类,意思是产生一 个 bean,并交给 spring 管理。

4.Spring Boot 集成JDBC(主要 事务管理)

数据源配置:在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一个几种不同的数据库配置方式。

​ 首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置:

<dependency> 
	<groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>

​ 在application.yml中配置数据源信息

#spring配置
spring:
#数据库连接配置
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/ssm_db?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

​ 使用JdbcTemplate操作数据库

​ Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用。

Spring Boot 整合阿里数据源(数据连接池的支撑)

导入阿里数据源jar

<dependency> 
	<groupId>com.alibaba</groupId> 
	<artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

在 yml 文件中注册阿里数据库连接池

#spring配置
spring:
#数据库连接配置
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/ssm_db?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    filters: stat
    initialSize: 5 #初始化时建立物理连接的个数
    maxActive: 20 #最大连接池数量

5.Spring Boot 集成 mybatis

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

在 application.yml 中配置数据源信息

mybatis:
  type-aliases-package: com.ff.back.bean
  mapper-locations: classpath:mapper/*Mapper.xml
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true

推荐一款插件:MyBatisX。

最后,在SpringBoot中的启动类上配置@MapperScan(“com.ff.back.mapper”),去扫描放接口的包,然后在接口层配置@Repository。

补充:配置日志打印
logging:
  level:
    com.ff.back.mapper: trace #持久层的日志打印 trace 日志级别
  file:
    name: D:\\logs\\log.log

6.SpringBoot后端各层需要配置的注解

启动类:

@SpringBootApplication
@MapperScan("com.ff.back.mapper")

bean层/pojo层:

@Component
@TableName(value = "user")

config层:

@Configuration

controller层:

@RestController
@RequestMapping(path = "/api/login")

dao层/mapper层(持久层):

@Repository

service层:

@Transactional
@Service

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白居不易.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值