IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot -> 正文阅读

[Java知识库]SpringBoot

?一、Maven的使用

作用:创建工程时简化下载jar包的过程.

创建过程:File—New—Project—Maven

1、Maven的四大特征

(1)仓库

????????远程仓库:一个国外的网址

????????镜像仓库:国内镜像

????????本地仓库:使用过的jar包都下载到本地仓库

(2)坐标:jia包下载的地址

(3)依赖:下载一个jar包,会下载和其相关的jar包

(4)命令 mvn cmd

①clean 对项目进行清理,清理的过程中会删除删除target目录下编译的内容。

②install 对本项目进行打包。三种打包方式,pom打包,jar包和war包。打包方式在pom.xml文件中进行指定。jar包就是普通的打包方式,可以是pom工程的子工程。war包的都是web工程,是可以直接放到tomcat下运行的工程。打成pom包和jar包的工程在新建的时候可以不需要制定maven项目的原型,达成war包的项目需要制定maven项目原型,指定的原型通常为maven-archetype-webapp,代表web项目。?


③compiler 编译项目源代码。

2、maven依赖的传递性

说明: maven中的jar包是有依赖的传递性

例如: A项目依赖B.jar包, B.jar依赖C.jar. 在项目中,只需要添加B.jar.则B/C.jar都会自动添加.

maven依赖传递性实现原理

  1. 当maven开始解析项目的POM.xml文件时,根据依赖的坐标,找到指定的jar包文件.之后添加该依赖.
  2. 之后扫描当前依赖文件中的 xxx.pom文件,找到该jar包,添加依赖
  3. 之后重复以上过程

3、配置Maven文件中?settings.xml

(1)修改settings.xml文件夹里面镜像仓库和本地仓库的默认位置

(2)创建完Maven项目更改全局本地仓库的默认位置

(3)然后修改后三项默认地址

4、创建Maven项目

Group 公司域名? ? ? ? ? ? ? ? ? Artifact 项目名称? ? ? ? ? ? ? ? ? ? Version 版本号

?二、springboot项目

什么是SpringBoot:Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让开发者尽可能快的跑起来 Spring 应用程序并且尽可能减少开发者的配置文件。

特点

(1) 嵌入的Tomcat(服务器默认端口号8080)

(2)简化Maven配置??

(3)提供了大量的自动配置,比如需要持久层数据源连接数据库,只需要提供对应属性就可以。

创建过程:File—New—Project—SpringInitializr

SpringBoot初始化jar包下载地址:?https://start.spring.io

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?阿里云地址:? https://start.aliyun.com

三、springboot常用注解

原文连接:(12条消息) 菜鸟的springboot常用注解总结_最强菜鸟的博客-CSDN博客_springboot常用注解

1、@SpringBootApplication

包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;

在这里插入图片描述

在这里插入图片描述

2、@Component、@Service、@Controller、@Repository?

将类交给spring容器管理

在这里插入图片描述

?3、@ResponseBody

@ResponseBody可以作用在方法上或类上,表示该方法的返回结果直接写入 HTTP response body 中,而不会被解析为跳转路径,即不会经过视图解析器,返回什么数据即在页面输入什么数据。

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

4、@RestController

该注解是@Controller和@ResponseBody的结合体,一般用于类,作用等于在类上面添加了@ResponseBody和@Controller

5、@AutoWired、@Qualifier、@Resource

这3个注解都是基于注解方式进行自动装配,在容器里面将查找到的bean返回,一般@AutoWired用得最多,@Qualifier则需要配合@AutoWired使用,@Resource则是可以通过名字进行自动装配

在这里插入图片描述

(1)@AutoWired
在这里插入图片描述

(2) @Qualifier
当有一个接口的多个实现类时,只用@AutoWired会报错,因为它有多个接口的实现类,不知道你要找哪一个,这个时候就需要在注入bean的时候起个名字,然后用@Qualifier注解指定哪一个bean(按照名字注入与装配),比如

@Autowired
@Qualifier("sayHello")

在这里插入图片描述

在这里插入图片描述

(3)@Resource
该注解的使用相当于@AutoWired和@Qualifier配合使用的效果在这里插入图片描述?

6、@RequestMapping、@GetMapping、@PostMapping

这3个注解功能也是类似的,通过这3个注解来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,用在方法上,可以通过配置的url进行访问
在这里插入图片描述

7、@Value、@ConfigurationProperties、@PropertySource

在这里插入图片描述

(1)@Value
这里用yml配置文件进行演示,propres配置文件也是同样的效果,在application.yml配置文件里设置开发环境的的配置文件(dev),这样用@Value获取到的就是开发环境的配置文件的数据,切换成生产环境(pro)则获取到的是生产环境的数据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)@ConfigurationProperties
该注解可以直接注入整个类的数据,作用于类
配置文件如下,这里使用pro环境
在这里插入图片描述?测试在这里插入图片描述?

(3)@PropertySource
注意:@PropertySource不支持yml文件读取。
配置文件如下:people.properties
在这里插入图片描述

测试在这里插入图片描述?

当然@PropertySource还可以和@Value配合使用,即一个一个注入值。

8、@Configuration、@Bean

@Configuration作用于类上面,表明这是一个配置类,@Bean产生一个Bean对象加入Spring IOC容器

注意:@Configuration标注在类上,相当于把该类作为spring的xml配置文件中,作用为:配置spring容器(应用上下文)
在这里插入图片描述
一般这两个注解同时配合使用,新建配置类,将User加入容器,并自定义生命周期

在这里插入图片描述

9、@RequestParam、@RequestBody、@PathVariable、@RequestHeader、@CookieValue

这几个注解放在一起主要是经常在控制层用来接收参数的
在这里插入图片描述
@PathVariable:RestFull请求获取参数

四、SpringBoot整合三大框架

controller控制层 ?service业务层 ?mapper持久层

1、框架之间的关系

Springboot是一个微服务框架,简化了应用的开发和部署。

Spring其核心就是控制反转(IOC),和面向切面(AOP),整合三方框架

Spring MVC接收用户发来的请求,处理业务,并给出相应

Mybatis与数据库相对接

2、各层关系

1、创建项目? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2、编辑pom.xml文件

3、编辑pojo文件? ? ? ? ? ? ? ? ? ? ? 4、编辑mapper文件,编辑xml映射文件

5、编辑service接口和实现类 ??6、编辑controller文件

pojo的其他写法:entify ?pojo ?vo ??po? 分别适用不同场景?

3、yml文件整合mybatis核心配置文件

server:

??port: 8080

spring:???#连接数据库

??datasource:?????????????????#加cj因为驱动是高版本

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

????url:?jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8& useUnicode=true&characterEncoding=utf8&autoReconnect=true&all owMultiQueries=true

????username: root

????password: root???#如果密码开始为0,则assword: ”0123456“


#SpringBoot整合mybatis

mybatis:

???#指定别名包

??type-aliases-package: com.jt.pojo

???#加载指定的xml映射文件

??mapper-locations: classpath:/mybatis/mappers/*.xml

???#开启驼峰映射

??configuration:

????map-underscore-to-camel-case: true

#sql日志文件打印

logging:

??level:

????com.jt.mapper: debug ??#需要打印日志的路径

url各参数类型:

1. serverTimezone=GMT%2B8? 指定时区 东八区

2. useUnicode=true&characterEncoding=utf8? ?开启使用Unicode编码,并且指定字符集utf-8

3. autoReconnect=true? ?断线是否重新链接.

4. &allowMultiQueries=true? ?是否允许批量操作

?

?4、pom文件

?<!--该配置表示maven坐标 -->

????<!--项目的组ID-->

????<groupId>com.jt</groupId>

????<!--项目名称-->

????<artifactId>springboot_demo1</artifactId>

????<!--项目版本号-->

????<version>0.0.1-SNAPSHOT</version>

????<name>springboot_demo1</name>

????<description>springboot_demo1</description>



<!--相当于继承了父级 -->

????<dependencyManagement>

????????<dependencies>

????????????<dependency>

????????????????<groupId>org.springframework.boot</groupId>

????????????????<artifactId>spring-boot-dependencies</artifactId>

????????????????<version>${spring-boot.version}</version>

????????????????<!--pom表示这是一个父类标签-->

????????????????<type>pom</type>

????????????????<scope>import</scope>

????????????</dependency>

????????</dependencies>

</dependencyManagement>



<dependency>

????<groupId>org.springframework.boot</groupId>

????<artifactId>spring-boot-starter-test</artifactId>

????<scope>test</scope>?SpringBoot的启动项

</dependency>

5、两种配置文件

application.yml和application.properties的优先级

(1)properties文件

数据结构类型:?key=value 特别注意不要有空格.

字符集编码:?程序读取文件时,默认采用ISO-8859-1编码,写入中文,读取的时候一定会中文乱码。

例子:mysql.user=root?

???????????mysql.pass=root

(2)扫描自定义properties文件,注解获取properties配置文件中的信息

难点:?如何将pro文件交给Spring容器管理

解决方案: @PropertySource("xxxxxx/xxx.properties") 指定配置文 件交给 Spring容器管理 ???????????

propertySource: ?value属性指定路径

? ? ? ? ? ? ? ? ? ? ? ? ? ?encoding属性指定配置文件编码格式

@RestController

@PropertySource(value="classpath:/mysql.properties",encoding = "UTF-8")

public class JDBCController {

????@Value("${mysql.username2}")

????private String username2;

????@Value("${mysql.password2}")

????private String password2;

(3)yml核心配置文件

yml文件的语法

????????①层级代码结构,注意缩进

????????②数据结构 key-value结构

????????③写法:?key:(空格)value

????????④字符集 文件读取时,默认采用UTF-8编码 可以写中文

例子:

server:?

    port:?8080

mysql:?

    username:?root

    password:?root

注解获取application.yml配置文件信息

@RestController

public class JDBCController {

?????${key} Spring提供的springel表达式 简称为:spel表达式

?????语法: 从spring容器内部获取key,动态为属性赋值.

?????@Value("${mysql.user}")

?????String user; ??//获取到的mysql.user赋值给user变量 ???

?????@Value("${mysql.password:8080}")//可以直接给默认值

     String password; ???

环境分割

spring:???#指定默认配置?

??profiles:

????active: prod

---??#环境分割

server:

??port: 8080

spring:??#环境名字

??config:

????activate:

??????on-profile: dev

---

server:

??port: 9000

spring:???#环境名字

??config:

????activate:

??????on-profile: prod

五、Lombok插件

引入插件lombok依赖

<dependency>

??? ?<groupId>org.projectlombok</groupId>

??? ?<artifactId>lombok</artifactId>

</dependency>

lombok常用提供常用注解:

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.experimental.Accessors;

@Data ?//自动生成get/set方法

@Accessors(chain = true) ?//?//开启链式加    原理:重写set/get方法?

@NoArgsConstructor ?//无参构造

@AllArgsConstructor ?//全参构造
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 17:56:45  更:2022-06-25 17:57:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:26:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码