京淘实训Day05-SpringBoot加强

1.知识回顾

1.1SSM框架的回顾

1.1.1Spring框架作用

	1.框架: 在程序中为了 节省时间,将一些公共代码整合到一起形成了框架.
	2.框架的种类: 控制数据库的框架/控制页面流转/管理框架的框架...微服务框架(当下企业开发主流形式)
	3.Spring框架:管理第三方框架,使得程序在调用/开发中/浑然一体.

1.1.2Spring框架核心

1).设计思想: IOC 控制反转 由容器负责对象的创建,负责对象的生命周期
2).IOC解释: Spring在启动的时候,在内存中申请了一大块的内存空间,用来维护spring所管理的对象.

3).采用K-V的数据结构的方式,管理spring中的对象.

4).如果spring容器想要管理第三方的框架,利用(反射机制----->根据class实例化(新建)对象),之后按照规则将第三方的框架的对象使用MAP集合的形式进行数据的存储(对象生命周期).只要spring容器不关闭,则对象可以一直被人引用.

5).细节: Map k是对象的唯一标识. v:被spring管理的对象.
例子: UserMapper接口如何被Spring容器管理的呢?
Map

6).DI: 依赖注入 @Autowried和@Resource
说明: 将spring容器中的对象,按照指定的规则进行注入.
注入方式: 1.根据key的方式进行注入
2.根据class类型的方式进行注入.
属性赋值方式: 一般利用Spring中的DI完成.
总结: spring中IOC和DI是一起使用的.缺一不可.

1.2SpringMVC框架作用

  1. SpringMVC说明:该框架是前台框架,主要的任务就是接收客户端提交的参数,同时在服务器中将业务处理完成之后,实现了页面跳转.
  2. 调用原理图:
    京淘实训Day05-SpringBoot加强_第1张图片
    请求说明:
    1).请求中一般包含用户提交参数.
    2).在响应中有2种返回值类型 1.JSON字符串 2.返回页面.

1.3Mybatis框架作用

  • 1.Mybatis作用:
    1).主要用来实现与数据库的交互. JAVA代码 -------Mybatis(JDBC)------ Mysql数据库
    2).可以利用对象的方式将数据进行封装. java代码 ------万物皆对象-------- 数据库记录
    数据库记录:
    在这里插入图片描述
    2).利用对象进行封装
public Class  User{
	private Integer id;
	private String name;
	private Integer age;
	private String sex;
}

2.STS安装

2.1STS介绍

1.下载地址:
京淘实训Day05-SpringBoot加强_第2张图片
2.JDK安装校验 JDK是java程序的运行环境
京淘实训Day05-SpringBoot加强_第3张图片
3.安装IDE(java代码开发)工具
说明: 通过如下的命令安装STS
命令:java -jar STSxxxxxxxxxxx.jar
安装完成之后:效果如下:
京淘实训Day05-SpringBoot加强_第4张图片
4.运行,输入地址
京淘实训Day05-SpringBoot加强_第5张图片

2.2安装报错说明

版本说明:
1.检查windows版本
京淘实训Day05-SpringBoot加强_第6张图片
2.检查JDK版本
京淘实训Day05-SpringBoot加强_第7张图片
3.JDK环境变量配置
京淘实训Day05-SpringBoot加强_第8张图片
4.sts效果展现
京淘实训Day05-SpringBoot加强_第9张图片

2.3STS环境配置

1).修改字符集编码格式
京淘实训Day05-SpringBoot加强_第10张图片
2).配置JDK环境变量
京淘实训Day05-SpringBoot加强_第11张图片
3).配置maven工具

3.1).引入maven 一站式的项目管理工具
京淘实训Day05-SpringBoot加强_第12张图片
3.2).添加maven配置文件
京淘实训Day05-SpringBoot加强_第13张图片
3.3).配置阿里云镜像

<!--阿里云镜像-->
		<mirror>
	        <id>nexus-aliyun</id>
	        <mirrorOf>*</mirrorOf>
	        <name>Nexus aliyun</name>
	        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
	 	</mirror>

4).关闭校验
京淘实训Day05-SpringBoot加强_第14张图片

3.SpringBoot框架

3.1新建SpringBoot项目

1).创建SpringBoot
京淘实训Day05-SpringBoot加强_第15张图片
2).编辑项目信息
京淘实训Day05-SpringBoot加强_第16张图片
3).选择组件
京淘实训Day05-SpringBoot加强_第17张图片

3.2编辑配置文件,解决STS整合SpringBoot问题

说明:修改POM.xml配置文件,代码如下:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.0.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.jt.vip</groupId>
	<artifactId>springboot_demo_1</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot_demo_1</name>
	<description>Demo project for Spring Boot</description>
	
	<!--引入新的配置  -->
	<properties>
		<java.version>1.8</java.version>
		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
		<skipTests>true</skipTests>
	</properties>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

2).更新Maven项目:
报错说明:
京淘实训Day05-SpringBoot加强_第18张图片
更新操作:
京淘实训Day05-SpringBoot加强_第19张图片
3).启动测试:
京淘实训Day05-SpringBoot加强_第20张图片
4).启动效果 如果出现8080,则表示成功.
京淘实训Day05-SpringBoot加强_第21张图片

3.3SpringBoot-YML配置文件说明

#       2.缩进   代表层级关系
server:
  port: 8080      #tomcat服务器默认端口号都是8080
                  #类比: java运行环境JDK   
                  #      项目运行环境服务器(软件) tomcat
在这里插入代码片

3.4SpringBoot入门案例

package com.jt.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**自己编辑的包/类,应该是主启动类的子级. **/
@RestController		//将类交给Spring容器管理,同时启动SpringMVC框架
					//用来接收用户请求 该程序该类的返回值是JSON串/字符串
//@Controller			//返回的是页面名称
public class HelloController {

	/**
	 * 需求:  用户通过网址,获取服务器信息.
	 * url请求地址: http://localhost:8080/getMsg
	 * 			   http://通信协议名称
	 * 			   localhost:8080: 访问本地服务器   IP 127.0.0.1:端口
	 * 			   getMsg:  请求地址
	 * 参数: 页面提交给服务器的数据
	 * 返回值: 服务器做完业务处理之后,响应给客户的数据.
	 * 一次请求/一次响应  web规范
	 * 
	 * 报错的状态码:    404:请求地址服务器不能正确的匹配.
	 * 
	 * 
	 */
	
	/**
	 * 方法   1.访问修改符  public 
	 * 	    2.返回值类型 String   字符串
	 * 	    3.方法名称      getMsg    在一个类中方法名称及参数不能重复.
	 * 		4.方法体:   业务执行的逻辑及返回数据的定义.   
	 * @return
	 * 
	 * 重启服务器:  刷新内存数据.
	 */
	
	@RequestMapping("/getMsg")	//用来匹配用户的请求url地址的.
	public String getMsg() {
		
		return "您好JAVA,我是刘昱江";
	}
	
	/**
	 * 小作业:
	 * 	1.http://localhost:8080/getEat    询问你中午吃啥了??
	 *  2.http://localhost:8080/myLove    询问你爱谁????
	 */
	
	
}

3.5SpringBoot属性赋值

3.5.1 属性赋值的作用

说明:有时当类中的属性的值发生变化时,如果直接将代码写死到程序时,如果将来数据发生变化,则需要修改代码.
耦合性高.

3.5.2 @Value的方式为属性赋值

1).编辑YML配置文件

#语法       1.key: (空格)value  
#       2.缩进   代表层级关系
server:
  port: 8080      #tomcat服务器默认端口号都是8080
                  #类比: java运行环境JDK   
                  #      项目运行环境服务器(软件) tomcat

#YML配置文件在SpringBoot(Spring+SpringMVC等)程序中启动时 会被默认加载                  
#为属性赋值   如果操作时有红线则不管.
my:
  food: 番茄炒蛋     #k-v
  book: java编程思想

2).为属性赋值操作

@RestController	//说明返回值是json串
public class MsgController {
	
	//定义一个属性
	@Value("${my.food}")	//从容器中获取数据,之后完成赋值操作.
	private String food;	//变量
	@Value("${my.book}")
	private String book;
	
	@RequestMapping("/myMsg")
	public String myMsg() {
		
		return "我中午吃了:"+food+"|我读的书是:"+book;
	}
}

3).页面效果
京淘实训Day05-SpringBoot加强_第22张图片

3.5.3 利用properties文件管理数据.

说明:因为将所有的数据都保存到YML配置文件中时,会造成管理的混乱.所以需要pro文件进行单独的管理.并且如果有需要,可以准备多个pro文件.
1).创建pro文件
京淘实训Day05-SpringBoot加强_第23张图片
2).加载指定的pro文件,并且修改字符集编码格式
京淘实训Day05-SpringBoot加强_第24张图片
3).为属性赋值:

//@PropertySource(value="classpath:/properties/my.properties",encoding="UTF-8")
	@Value("${my2.food}")	//如果想要取值,必须先赋值.
	private String food2;
	@Value("${my2.book}")
	private String book2;
	
	
	@RequestMapping("/myMsg2")
	public String myMsg2() {
		
		return "我中午吃了:"+food2+"|我读的书是:"+book2;
	}

3.6程序热部署

说明:如果需要修改代码之后,程序可以自动的重启,则需要配置热部署
用法:引入jar包

<!--支持热部署 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

3.7SpringBoot程序执行的原理

总结:SpringBoot启动启动时,必须包含的配置标签有3个.
<!--1.parent标签 jar包文件(工具) 
		通过parent标签,将springBoot中所有依赖的jar包,进行了统一的定义.
	 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.0.RELEASE</version>	<!--2.3.0最新版本包  -->
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

2).依赖标签

<!-- dependencies表示依赖. 需要什么包,添加什么依赖!!!! -->
	<dependencies>
	
		<!--原理: spring-boot-starter 启动器 代表者自动的配置和部署,可以直接使用
		其中的功能-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<!-- web表示springMVC框架  -->
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!--支持热部署 只要添加了依赖包,则springBoot程序启动时,
		就会自动的加载运行. 对于用户而言,可以直接使用其服务.
		-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
	</dependencies>

3).build标签

<!--build是负责项目打包部署  一般将项目开发完成之后,需要进行服务器部署(Linux)
	  -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

3.8LomBok插件配置

3.8.1LomBok插件作用

作用:为POJO对象生成get/set方法.简化代码的开发

//user表示实体对象 一般与数据库中的表进行关联.
public class User {
	//属性------数据库中的字段
	private Integer id;			//整数   一般用Integer/Long 区间>Integer
	private String name;		//String  一般写字符串
	private Integer age;
	private String sex;
	
	//一般都是添加set  为对象中的属性赋值   get:从对象中取值时使用.
	//如果需要动态的生成get/set方法,则可以使用lombok插件.
	
}

3.8.2引入jar包

<!--引入插件lombok 自动的set/get/构造方法插件 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

3.8.3安装插件

1).lombok.jar包文件位置
京淘实训Day05-SpringBoot加强_第25张图片
2).根据坐标,查找lombok的位置
京淘实训Day05-SpringBoot加强_第26张图片

3).通过java 命令 执行 xxxx.jar

命令: java -jar lombok-1.18.12.jar
效果展现:
京淘实训Day05-SpringBoot加强_第27张图片
点击Install之后会提示代码执行成功!!!.

4.检查lomBok是否有效
说明:在STS的根目录中检查是否有lomBok的jar包文件
京淘实训Day05-SpringBoot加强_第28张图片
5).将STS开发工具重启.
检查STS是否可以正常启动.

3.8.4LOMBOK插件使用

//user表示实体对象 一般与数据库中的表进行关联.
@Data	//证明lombok引入成功
@Accessors(chain=true)	//链式加载
@NoArgsConstructor		//定义无参构造方法  如果什么都不写,默认添加无参构造
@AllArgsConstructor		//定义全参构造方法  如果添加了全参构造,必须先添加无参构造
						//为什么呢?  解释:乌龟的屁股!!!! 龟腚(规定)
public class User {
	//属性------数据库中的字段
	private Integer id;			//整数   一般用Integer/Long 区间>Integer
	private String name;		//String  一般写字符串
	private Integer age;
	private String sex;
	
	//一般都是添加set  为对象中的属性赋值   get:从对象中取值时使用.
	//如果需要动态的生成get/set方法,则可以使用lombok插件.
}

3.8.5LOMBOK测试案例

@RestController
public class UserController {
	
	@RequestMapping("/getUser")
	public User getUser() {
		//1.定义User对象
		User user = new User();		//无参构造
		user.setId(101)	//赋值操作有效
			.setName("tomcat猫")
			.setAge(18)
			.setSex("公");
		
		//2.利用构造方法(创建对象的方法)为user对象赋值
		User user2 = new User(102, "jerry", 17, "公");
		
		return user2;
	}
}

测试效果:
京淘实训Day05-SpringBoot加强_第29张图片

4.作业

1.将今天讲过的注解 整理成笔记(纸/word/text/xmind…)
2.Mybatis完成user表的 CRUD操作. (最好完成/不会留下作业记录 写写思路) 做!!!
目标:练习简单sql语句,mybatis用法
1.findAll() 查询所有的user表记录
2.insertUser() 新增user数据 user数据利用构造方法添加
3.deleteUserById() 根据Id值,删除user数据.
4.updateUserById() 根据Id值,修改user数据.

你可能感兴趣的:(实训,java)