概述
网页左边,向下滑有目录索引,可以根据标题跳转到你想看的内容 |
---|
spring boot概述
- spring boot是微服务的基础,但它还不算一个微服务,它的作用仅仅是整合了spring的一些配置文件,可以让你快速的搭建一个spring项目,spring boot可以快速开发一个Spring应用。
- spring cloud是协调治理全局的微服务。
- 前后端分离,就是前端由前端工作人员开发,而后端,采用微服务的形式,分为多个模块,每个模块可以由单独团队开发。
- 比如搜索功能,就可以做成一个独立的模块,也就是一个微服务,每个微服务都可以由一个专门的团队负责,不同模块之间互不影响,每个模块只需要提供可调用接口即可,当某个项目需要用到某一个功能时,只需使用某一微服务即可,比如,百度有搜索功能,可以使用搜索功能微服务提供的接口,淘宝有搜索功能,同样可以使用这个微服务实现,比如将某个微服务当成电磁炉,电磁炉有加热功能,当需要煮面时,可以使用这个电磁炉,当需要吃火锅时,也可以使用这个电磁炉,而煮面,火锅,是完全不同的两个项目,但使用的都是电磁炉,这就是分模快微服务
spring boot常用jar包依赖(供日后快速查询使用)
- spring boot父依赖:spring-boot-starter-parent
- spring boot启动包:spring-boot-starter-web
- spring boot JDBC:spring-boot-starter-jdbc
- spring boot 整合 myBatis:mybatis-spring-boot-starter
- thymeleaf依赖:thymeleaf
spring boot的常用注解(供日后快速查询使用)
- @SpringBootApplication:表示指定类为启动类
- @MapperScan(“mapper”):配置指定mybatis映射文件mapper
- @Configuration:表示指定类为配置类,用来实现java配置,代替xml配置
- @Bean:标识配置类中指定方法的返回值是一个spring容器的Bean对象,声明在方法上,将方法返回值加入IOC容器,代替传统< bean>标签
- @Value : 注入属性
- @PropertySource : 指定外部属性文件
- @ConfigurationProperties(prefix = “jdbc”):引用yml或properties文件中内容,需要指定文件中前缀,然后可以根据实体类或者方法(取决于声明在实体类上面还是方法上面)中的set方法,直接赋值相应配置信息,比如jdbc.username,就会调用setUserName方法赋值,没有对应属性就不赋值
- @EnableConfigurationProperties(“配置类名”):引用指定配置类
yml文件常用配置(供日后快速查询使用)
- 配置服务器端口号
- 配置debug日志
- 配置HikariCP连接池(spring数据源)
- 配置视图解析器
- 配置mybatis开启驼峰转换
- 配置mybatis找到mapper映射文件,结果集映射是为了在mapper文件中不写包名
一、spring boot基础概念及操作
spring boot 的特点 |
---|
- 无需web.xml,这也是为什么在servlet3.0中去除web.xml的原因
- 不需要配置springMVC的配置文件,前端控制器
- 集成了tomcat,无需用户自己配置
- 集成JSON,支持Rest风格url
- spring boot就是一个集成了spring各种组件的快速开发框架,可以快速搭建一个spring项目
1. 从头搭建一个SpringBoot项目
- 创建Maven工程
idea可以直接生成一个spring boot项目,但为了讲解,我们选择重头使用maven搭建
- 使spring boot 为父工程:
如果想使用SpringBoot必须让springBoot成为父工程,建好Maven工程后,我们可以选择自动导入所引用包(Enable Auto-import),或者选择Import Changes 仅仅导入我刚刚所做改变的包
- 导入web启动包
web启动包可以为我们快速启动一个web项目
- 建立spring boot 启动类
spring boot需要一个启动类,来启动spring boot项目,此类必须在最高级目录(保证其他类都在启动类的子文件夹下,因为spring boot自动扫描子目录,如果你放在低级目录,那么高级目录就自动扫描不到,需要你在启动类添加注解,手动扫描)
5 .建立控制层,处理请求
建立Controller层,处理客户端请求为什么spring boot 可以快速搭建项目
- 首先,在早期的spring中,还没有注解的概念,所以,使用spring全部都是用xml文件配置,而当时一个项目有几十各类,相应的就要配置几十个xml文件
- 之后在spring2.0的时候,出现了注解,这时注解不是很完善,所以大多数人使用的时候,都是重要的用xml文件配置,一些简单又重复的就使用注解,二者结合使用
- 之后spring3.0,注解已经完善,这时spring推荐大家使用注解,不要再写xml了,这一出现直接导致我们的web工程甚至都不用配置web.xml了,当时的servlet3.0版本也彻底抛弃了web.xml,但是在中国并不流行,所以依然使用2.0的技术。
- 而现在已经到了spring5的时期,spring已经有了很大改变,出现了java配置,而目前大多数人,也坦然接受了java配置的真香定律,java配置简直太香了,用了以后,除了看源码,维护老项目(大多使用ssm框架开发),已经没什么理由能让我放弃spring boot,回去配置xml
- 而spring boot 就是因为配置了大量注解,这些注解会自动帮我们配置好内些必须的,复杂的配置内容
2. 使用java配置的方式配置数据源
java配置
- java配置就是通过一些java类配合注解形成java配置,是在spring3.0以后的产物,在springBoot中有了更好的配置
- java配置常用注解
- @Configuration :声明一个类为配置类,代替传统xml
- @Bean : 声明在方法上,将方法返回值加入IOC容器,代替传统< bean>标签
- @Value : 注入属性
- @PropertySource : 指定外部属性文件
配置c3p0数据源(理解什么是java配置即可,数据源spring boot集成了日本研发的目前最好的数据源连接池)
- 引入c3p0和mysql依赖
- 外部文件中配置连接信息
- 用java配置原来在xml中的内容
- 编写Controller,利用debug测试
3. 使用spring boot 获取配置文件内容(必须掌握三种方式)
为了方便我们使用一个工具lombok,自动为我们生成get、set、toString等等方法配置完成需要重启idea |
---|
- 安装插件,配置依赖
- 报错解决(以下过程中有这个错误,请进行如下设置)
spring boot指定的配置文件 |
---|
- 为外部文件添加application前缀,因为spring boot会自动将application为前缀的文件识别为spring boot配置文件
- 新建一个类,存储这些里面的值
- 用到的注解介绍
- @ConfigurationProperties(“前缀”) :把外部配置文件封装成实体类,按实体类里面属性名是否和配置文件中名字一致来执行封装
- @Data :lombok工具中的注解,自动为我们生成需要的一切get,set,toString方法。
1. 直接通过方法获取
- 注入配置实体类,然后通过get set方法获取值
- 测试
2. 自动注入配置实体类
- 我们无需让spring扫描到这个类了
- 使用@EnableConfigurationProperties(配置实体类的class对象)注解,自动将实体类注入到这个注解的作用范围(此注解的作用范围为它注解的类)
3. 直接在需要的地方,实时获取配置文件中的值
- 我们不需要配置实体类了,这个类没用了
- 通过注解@ConfigurationProperties(prefix=“前缀”),将配置文件中内容,按照名称,自动调用相应的set方法注入
4. 使用*.yaml或*.yml文件配置属性(如果与后缀名为properties同时存在,那么配置合并,若有同名属性,按properties为准)
yml文件可以放置的位置,以及优先级
下面是file文件夹位置,而classpath就是我们上面一直使用的resources文件夹
使用yml文件 |
---|
- 创建一个后缀名为yml的文件,其他操作都一样
- 如果这个文件要对应到实体类,那么结构如下
二、spring mvc配置
1. 配置拦截器
- 配置日志功能
- 配置自定义拦截器
- 使用java配置代替xml配置springMVC,创建一个类继承WebMvcConfigurer
- 将我们上面配置的拦截器添加到spring MVC配置类中,也就是告诉spirng MVC这个拦截器是你的
- 测试(可见在hello请求前后都打印了拦截器的日志信息)
2. 配置视图控制器
视图控制器作用就是,我们访问一个地址,然后帮我们跳转到指定资源,或者静态页面 |
---|
- 设置静态页面或者写一个静态路径(这里我们不使用静态页面,因为需要依赖于模板引擎的依赖,但是现在都是前后端分离,已经不常用这些东西了(但是我们后面还是会讲一下),所以我们知道视图控制器是干嘛的就可以了)
- 配置视图控制器
@Configuration
public class MvcConfig implements WebMvcConfigurer {
/*拦截器*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TestInterceptor()).addPathPatterns("/**");
}
/*视图控制器*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
//addViewController(url)添加一个视图控制器,当访问指定url时跳转到指定页面
//setViewName(静态资源路径),当用户通过浏览器访问上面设置的url时,自动跳转到这里指定的页面
registry.addViewController("/test").setViewName("hello");
}
}
thymeleaf模板 |
---|
- 依赖
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.3.9.RELEASE</version>
</dependency>
- 编写静态页面,测试
3. 国际化配置
- 设置统一编码格式utf-8
- 创建国际化文件,创建login和login_zh_CN文件后会自动识别国际化操作(如果最后国际化失败,尝试将i8n文件夹名字改为i18n)
- 编辑文件
- 配置文件路径
三、操作数据库
1. 配置JDBC数据源
使用HikariCP连接池,这是日本开发的连接池,速度极快,碾压c3p0,所以大多数厂商使用此连接池,spring默认支持此连接池,封装在JDBC模块中 |
---|
- 添加springJDBC依赖
- 配置连接池
2. 配置MyBatis整合
和ssm框架一样,MyBatis自己提供了整合包mybatis-spring-boot-starter |
---|
- 引入依赖
- 开启mybatis驼峰命名
- 找到mapper映射文件(需要说的是,单表操作的mapper,因为sql没什么可优化的,所以一般我们都使用通用mapper,多表才自己写mapper映射)
- 配置到指定包找类别名
- 得到所有mapper映射的接口
3. 使用MyBatis的通用mapper(支持单表增删改查等操作)
- 引入依赖(引入通用mapper后,mybatis整合包,和JDBC包就自动引入了,所以我们可以将上面引入的两个包删掉)
- mapper接口继承mapper类
- 使用通用mapper中的mapper扫描注解
- 指定数据库中表的名字
- 指定主键,如果主键设置了自动自增,也需指定
- 指定某些字段不作为sql语句字段名使用
- 编写service层
- 加事务
- 测试
四、源码TODO(日后更新)
最后
以上就是鲤鱼香氛为你收集整理的Spring Boot详细笔记spring boot常用jar包依赖(供日后快速查询使用)spring boot的常用注解(供日后快速查询使用)yml文件常用配置(供日后快速查询使用)一、spring boot基础概念及操作二、spring mvc配置三、操作数据库四、源码TODO(日后更新)的全部内容,希望文章能够帮你解决Spring Boot详细笔记spring boot常用jar包依赖(供日后快速查询使用)spring boot的常用注解(供日后快速查询使用)yml文件常用配置(供日后快速查询使用)一、spring boot基础概念及操作二、spring mvc配置三、操作数据库四、源码TODO(日后更新)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复