1).设计思想: IOC 控制反转 由容器负责对象的创建,负责对象的生命周期 3).采用K-V的数据结构的方式,管理spring中的对象. 4).如果spring容器想要管理第三方的框架,利用(反射机制—–>根据class实例化(新建)对象),之后按照规则将第三方的框架的对象使用MAP集合的形式进行数据的存储(对象生命周期).只要spring容器不关闭,则对象可以一直被人引用. 5).细节: Map<k:v> k是对象的唯一标识. v:被spring管理的对象. 6).DI: 依赖注入 @Autowried和@Resource 1.下载地址: 版本说明: 1).修改字符集编码格式 3.1).引入maven 一站式的项目管理工具 4).关闭校验 1).创建SpringBoot 说明:修改POM.xml配置文件,代码如下: 2).更新Maven项目: 说明:有时当类中的属性的值发生变化时,如果直接将代码写死到程序时,如果将来数据发生变化,则需要修改代码. 1).编辑YML配置文件 2).为属性赋值操作 3).页面效果 说明:因为将所有的数据都保存到YML配置文件中时,会造成管理的混乱.所以需要pro文件进行单独的管理.并且如果有需要,可以准备多个pro文件. 说明:如果需要修改代码之后,程序可以自动的重启,则需要配置热部署 2).依赖标签 3).build标签 作用:为POJO对象生成get/set方法.简化代码的开发 1).lombok.jar包文件位置 3).通过java 命令 执行 xxxx.jar 命令: 4.检查lomBok是否有效 测试效果: 1.将今天讲过的注解 整理成笔记(纸/word/text/xmind…)
1.知识回顾
1.1SSM框架的回顾
1.1.1Spring框架作用
1.框架: 在程序中为了 节省时间,将一些公共代码整合到一起形成了框架. 2.框架的种类: 控制数据库的框架/控制页面流转/管理框架的框架...微服务框架(当下企业开发主流形式) 3.Spring框架:管理第三方框架,使得程序在调用/开发中/浑然一体.
1.1.2Spring框架核心
2).IOC解释: Spring在启动的时候,在内存中申请了一大块的内存空间,用来维护spring所管理的对象.
例子: UserMapper接口如何被Spring容器管理的呢?
Map<userMappaer,userMapper接口的实例化对象>
说明: 将spring容器中的对象,按照指定的规则进行注入.
注入方式: 1.根据key的方式进行注入
2.根据class类型的方式进行注入.
属性赋值方式: 一般利用Spring中的DI完成.
总结: spring中IOC和DI是一起使用的.缺一不可.1.2SpringMVC框架作用
请求说明:
1).请求中一般包含用户提交参数.
2).在响应中有2种返回值类型 1.JSON字符串 2.返回页面.1.3Mybatis框架作用
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介绍
2.JDK安装校验 JDK是java程序的运行环境
3.安装IDE(java代码开发)工具
说明: 通过如下的命令安装STS
命令:java -jar STSxxxxxxxxxxx.jar
安装完成之后:效果如下:
4.运行,输入地址
2.2安装报错说明
1.检查windows版本
2.检查JDK版本
3.JDK环境变量配置
4.sts效果展现
2.3STS环境配置
2).配置JDK环境变量
3).配置maven工具
3.2).添加maven配置文件
3.3).配置阿里云镜像<!--阿里云镜像--> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
3.SpringBoot框架
3.1新建SpringBoot项目
2).编辑项目信息
3).选择组件
3.2编辑配置文件,解决STS整合SpringBoot问题
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://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>
报错说明:
更新操作:
3).启动测试:
4).启动效果 如果出现8080,则表示成功.
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请求地址: https://localhost:8080/getMsg * https://通信协议名称 * 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.https://localhost:8080/getEat 询问你中午吃啥了?? * 2.https://localhost:8080/myLove 询问你爱谁???? */ }
3.5SpringBoot属性赋值
3.5.1 属性赋值的作用
耦合性高.3.5.2 @Value的方式为属性赋值
#语法 1.key: (空格)value # 2.缩进 代表层级关系 server: port: 8080 #tomcat服务器默认端口号都是8080 #类比: java运行环境JDK # 项目运行环境服务器(软件) tomcat #YML配置文件在SpringBoot(Spring+SpringMVC等)程序中启动时 会被默认加载 #为属性赋值 如果操作时有红线则不管. my: food: 番茄炒蛋 #k-v book: java编程思想
@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.5.3 利用properties文件管理数据.
1).创建pro文件
2).加载指定的pro文件,并且修改字符集编码格式
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>
<!-- 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>
<!--build是负责项目打包部署 一般将项目开发完成之后,需要进行服务器部署(Linux) --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
3.8LomBok插件配置
3.8.1LomBok插件作用
//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安装插件
2).根据坐标,查找lombok的位置
java -jar lombok-1.18.12.jar
效果展现:
点击Install之后会提示代码执行成功!!!.
说明:在STS的根目录中检查是否有lomBok的jar包文件
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; } }
4.作业
2.Mybatis完成user表的 CRUD操作. (最好完成/不会留下作业记录 写写思路) 做!!!
目标:练习简单sql语句,mybatis用法
1.findAll() 查询所有的user表记录
2.insertUser() 新增user数据 user数据利用构造方法添加
3.deleteUserById() 根据Id值,删除user数据.
4.updateUserById() 根据Id值,修改user数据.
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算