目录
springboot中mapper的加载接口代理对象有两种方法
1.对SpringBoot的认识
1.1.什么是SpringBoot
springboot 是 spring 快速开发脚手架,通过约定大于配置的方式,快速构建和启动 spring 项目.
springboot根据我们项目中所引入的依赖,比如引入了springmvc构件,就会判断出是要进行springmvc的web开发,就会把springmvc的相关基本配置自动配置好了,不需要我们在xml中配置。 比如配置前端控制器DispatcherServlet、配置视图解析器、配置静态资源访问、处理器映射器、处理器适配器等一系列组件,
1.2.SpringBoot解决了哪些痛点
spring 的缺点:
1.复杂的配置
项目各种配置是开发时的损耗, 写配置挤占了写应用程序逻辑的时间。
2.混乱的依赖管理
项目的依赖管理非常的繁琐。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这是一个棘手的问题。并且,一旦选错了依赖的版本,随之而来的就是各种的不兼容的bug
spring boot 可以解决上面 2 个问题
1.3.SpringBoot有哪些特性
快速开发 spring 应用的框架
内嵌 tomcat 和 jetty 容器,不需要单独安装容器,使用main方法就可以 直接启动发布一个 web应用
简化 maven 配置,通过继承 parent构件 ,一站式引入需要的各种依赖(启动器),简化依赖管理
通过 约定大约配置的方式可以实现基于注解的零配置思想
和各种流行框架, spring web mvc , mybatis , spring cloud 无缝整合
官网
总结
spring boot 是 spring 快速开发脚手架,通过约定大于配置,优化了混乱的依赖管理,和复杂的配置,让我们用java -jar方式,运行启动 java web 项目
2. 入门案例
2.1.新建module
需求:创建 HelloController, 在页面中打印 hello spring boot…
先新建一个空的工程:
设置 jdk 版本 :
新建一个 module :
使用 maven 来构建
然后填写项目坐标
项目结构:
2.2.pom.xml添加相关依赖
2.2.1.添加父工程坐标
SpringBoot 提供了一个名为 spring-boot-starter-parent 的构件,里面已经对各种常用依赖(并非全部)的版本进行了管理,我们的项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了,需要什么依赖,直接引入坐标即可!
2.2.2.添加web启动器
为了让 SpringBoot 帮我们完成各种自动配置,我们必须引入 SpringBoot 提供的自动配置依赖,我们称为启动器 。因为我们是web 项目,这里我们引入 web 启动器
2.2.3.管理jdk版本
默认情况下, maven 工程的 jdk 版本是 1.5 ,而开发使用的是 11 ,因此这里我们需要修改 jdk 版本
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bowei.springboot</groupId>
<artifactId>springbootdemo</artifactId>
<version>1.0-SNAPSHOT</version>
<!--管理jdk版本-->
<properties>
<java.version>11</java.version>
</properties>
<!--添加父工程坐标 我们的项目继承父工程项目,这样我们就不用操心依赖的版本冲突问题了
由parent统一管理版本号,不需要再写版本号-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<!--添加web启动器
为了让SpringBoot帮我们完成各种自动配置,我们必须引入Spring