三阶段---day01--IDEA环境配置、SpringBoot基本用法、SpringBoot 高级用法

目录

一、IDEA环境配置

1、 项目环境搭建

1.1 创建工程目录

 1.2  IDEA管理工作目录

2、 IDEA环境配置

2.1 滚轮缩放,字体大小切换

 2.2 设定自动提示

2.3 设置参数提示

 2.4 设定字符集编码格式

 2.5 IDEA自动编译

 2.6  IDEA配置Maven

2.7 LomBok插件

2、 SpringBoot基本用法

1)创建SpringBoot项目

1.1  根据插件新建项目

 1.2 添加依赖

2) 关于POM.xml文件报错说明

2.1关于POM.xml文件报错说明

 2.2 依赖插件报错

3)关于POM.xml文件说明

1、 maven坐标说明

2、maven 命令

3、maven打包没有生成target目录的说明

 4、parent标签的作用

 5、dependency标签依赖说明

6、测试类注解@SpringBootTest的说明

7、插件说明

3、SpringBoot 高级用法

3.1 关于配置文件语法说明

1、properties 语法说明:修改端口号

2、YML 语法说明:修改端口号

3.2 属性赋值

1、业务需求

2、YML为属性赋值

 3、Properties文件为属性赋值

4、为属性赋值的意义

3.3 程序热部署

1、pml文件添加jar包

2、设置热部署


一、IDEA环境配置



1、 项目环境搭建



1.1 创建工程目录

说明: 创建一个目录,在其中编辑整个第三阶段的代码.
操守: 路径中不要出现中文/空格/特殊字符!!!
要求: 目录不要与其他的项目嵌套!!!

 1.2  IDEA管理工作目录

1)项目环境说明

在这里插入图片描述

2) IDEA管理新的工作空间
使用File-Open 打开新的目录,通过路径找到刚才创建好的文件名cgb2105,选定后打开新窗口即可

2、 IDEA环境配置

2.1 滚轮缩放,字体大小切换

在这里插入图片描述

 2.2 设定自动提示

说明: 配置该项之后.自动不区分大小写.

在这里插入图片描述

2.3 设置参数提示

说明: 设定之后方法中有参数提示.
 在这里插入图片描述

 2.4 设定字符集编码格式

在这里插入图片描述

 2.5 IDEA自动编译

在这里插入图片描述

 2.6  IDEA配置Maven

文件: settings文件 本地仓库路径/私服镜像地址

  1. 本地仓库路径: 路径注意操守

在这里插入图片描述

    2.私服镜像服务器地址

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

   3.配置Maven

在这里插入图片描述

2.7 Lombok插件

在这里插入图片描述

2、 SpringBoot基本用法

1)创建SpringBoot项目

1.1  根据插件新建项目

在这里插入图片描述

 1.2 添加依赖

说明: 只勾选web即可.

在这里插入图片描述

2) 关于POM.xml文件报错说明

2.1关于POM.xml文件报错说明

在这里插入图片描述

 2.2 依赖插件报错

plugin包报错,复制parent标签中的version标签版本<version>2.5.2</version>,粘贴到plugin标签下就可解决 

在这里插入图片描述

3)关于POM.xml文件说明

1、 maven坐标说明

<!--项目maven的基本信息
        坐标:1.组ID 公司域名倒写
            2.项目名称 名称不能重复 不能数字开头
            3.项目版本
        坐标意义:
                1.主要用来用来管理/区分项目
                2.项目的打包路径就是坐标的位置.
    -->
    <groupId>com.jt</groupId>
    <artifactId>springboot_demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo1</name>
    <description>Demo project for Spring Boot</description>

2、maven 命令

常规用法:
1. 配置maven环境变量
2. 通过dos命令窗口 执行命令. 几乎不用

在这里插入图片描述

IDEA插件方式: 

  1. clean 清空项目编译之后的文件class(位于target目录中)
  2. install 将项目中的target中的class进行打包成 xxx.jar包
    install时会将测试类一同打包.所以需要注意测试类代码正确性.
  3. 跳过测试类打包,加入下面代码,install后可以在target包中的target-classes包中找到打包的xxx.jar包
 <properties>
        <java.version>1.8</java.version>
        <!--跳过测试类打包-->
        <skipTests>true</skipTests>
    </properties>

3、maven打包没有生成target目录的说明

如果遇到上述的错误,则去本地仓库中根据项目路径 查找jar包.

 4、parent标签的作用

定位:SpringBoot主要作用是整合SSM,使得框架的使用更加的简化,原则:“开箱即用”
parent主要作用:

  1. SpringBoot在内部兼容了当下几乎所有第三方框架
  2. SpringBoot官网已经将所有兼容的版本进行了定义, (几乎解决了版本冲突问题)以后几乎不写版本号
  3.  总结:parent标签中定义了其他版本信息版本号,只需要导入需要的依赖包即可使用
  <!--定位:SpringBoot主要作用是整合SSM,使得框架的使用更加的简化
        原则:“开箱即用”
        parent主要作用:
              1.SpringBoot在内部兼容了当下几乎所有第三方框架
              2.SpringBoot官网已经将所有兼容的版本进行了定义
              (几乎解决了版本冲突问题)以后几乎不写版本号
        总结:parent标签中定义了其他版本信息版本号-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 5、dependency标签依赖说明

 springboot启动项(器)在包的内部SpringBoot,已经完成了项目的"整合"(配置) 用户拿来就用 ,web导入SpringMVC

<!--原则: 按需导入  -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <!--springboot启动项(器)在包的内部SpringBoot
            已经完成了项目的"整合"(配置) 用户拿来就用
            web导入SpringMVC
            -->
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

6、测试类注解@SpringBootTest的说明

测试类的包路径必须在主启动类的同级子包中编辑

springboot的测试注解可以从容器中动态获取Bean对象

被spring容器管理的对象就叫Bean

7、插件说明

SpringBoot项目与Maven整合的一个插件,可以通过插件 执行项目打包/测试/文档生成等操作,注意事项: 该插件不能省略;项目发布时: java -jar xxxx.jar  ;报错原因:没有主清单信息!!!!

  <!--SpringBoot项目与Maven整合的一个插件
        可以通过插件 执行项目打包/测试/文档生成等操作
        注意事项: 该插件不能省略
        项目发布时: java -jar xxxx.jar  报错:没有主清单信息!!!!
    -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.5.2</version>
            </plugin>
        </plugins>
    </build>

3、SpringBoot 高级用法

3.1 关于配置文件语法说明

resources中的文件

1、properties 语法说明:修改端口号

#数据结构: KEY-VALUE
#数据类型: String类型/Number数值
#语法:    1.key-value使用=号连接
#        2.不需要添加多余的""号
#        3.pro文件在IDEA中的编码格式UTF-8(手动可改)
#          pro文件在被程序读取时默认采用ISO-8859-1格式,中文必定乱码
#        4.key=value不要出现多余的空格
server.port=8090

2、YML 语法说明:修改端口号

#数据结构 key-value
#数据类型 String/Number
#语法:
#    1.key:(空格)value
#    2.key与key之间有层级关系,注意缩进
#    3.字符编码都采用UTF-8
#    4.可读性较pro文件 更加友好
server:
  port: 8090

3.2 属性赋值

1、业务需求

说明: 如果将数据直接写死到.java文件中,如果需要修改,则重新编译打包.不方便.如何优化??
优化: 通过配置文件动态为属性赋值!!!

在这里插入图片描述

2、YML为属性赋值

1)编辑YML配置文件

在这里插入图片描述

 2)Controller为属性赋值

/**
 * 1.接收用户发起的请求
 * 2.响应用户JSON串数据
 *   1.@ResponseBody 可以将对象转化为JSON串
 *   2.如果返回值为String类型,则返回本身
 *   纠正: JSON串
 */
@RestController
public class HelloController {

    //private String day="1天";
    /**
     * 规则:从Spring容器根据key获取数据,之后为属性赋值
     * 语法: spel表达式    ${key}
     */
    @Value("${user.day}")
    private String day;

    @RequestMapping("/getMsg")
    public String getMsg(){

        return "这个雨下几天:"+day;
    }
}

3)重启服务器测试

 3、Properties文件为属性赋值

1)需求说明

YML是SpringBoot的核心配置文件, 一般用来整合其他第三方框架,如果将大量的业务数据放到YML中不符合编码规范. 所以将业务数据写到Pro配置文件中.

2)准备pro配置文件

在这里插入图片描述

3)编辑pro配置文件

package com.jt.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 1.接收用户发起的请求
 * 2.响应用户JSON串数据
 *   1.@ResponseBody 可以将对象转化为JSON串
 *   2.如果返回值为String类型,则返回本身
 *   纠正: A.JSON串
 */
@RestController
//spring容器启动时,动态添加配置文件 一般需要修改字符集
//关于注解赋值:  1.必须满足key-value结构
//             2.如果属性只有一个并且是value属性,则可以省略不写
//             3.如果还是乱码则检查IDEA pro字符集编码格式的设置
@PropertySource(value="classpath:/person.properties",encoding="UTF-8")
public class HelloController {

    //private String day="1天";
    /**
     * 规则:从Spring容器根据key获取数据,之后为属性赋值
     * 语法: spel表达式    ${key}
     */
    @Value("${user.day}")
    private String day;
    @Value("${person.name}")
    private String name;

    @RequestMapping("/getMsg")
    public String getMsg(){

        return "这个雨下几天:"+day+name;
    }
}

 4)重启服务器,前端输入url

4、为属性赋值的意义

  1. 实现了.java文件与属性赋值的解耦
  2. 为了实现特定的业务的赋值.
  3. SpringBoot整合第三方框架时,如果需要额外的配置文件时,常常采用上述的操作实现. 方便扩展;Redis为属性赋值操作

3.3 程序热部署

开发阶段: 码农编码环节. 只对开发阶段有效
生产阶段: 甲方将项目实际上线使用.

1、pml文件添加jar包

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

刷新导包,组合键: ctrl + shift + alt + / 或者 ctrl + alt + a,勾选热部署

在这里插入图片描述

 在这里插入图片描述

2、设置热部署

IDEA上方任务栏Build-->Biuld Project

修改了代码,不必重新启动了,只需要重新编译(build)即可访问新数据

4、框架关系

在这里插入图片描述

5、 Spring自动装配过程


1 Spring"容器"


说明: Spring容器是在内存中一大块的内存区域,存储Spring管理对象
数据结构: KEY-VALUE结构
数据类型: Map集合
Map详细说明: Key: 类型首字母小写 Value: 对象

2 依赖注入的原理


1.按照类型注入(默认)
按照属性的类型 去Map集中中查找是否有改类型的对象. 如果有则注入.

2.按照名称注入 根据属性的name 去Map集中中查找对应的KEY
 

	@Autowired
    @Qualifier(value="李四")
    private SpringService springService;

自动装配的规则说明:
1.如果对象在进行实例化.如果对象中的属性被 @Autowired注解修饰,则说明应该先注入属性.
2.先根据属性的类型,查找Map集合中是否有该类型的对象.
3.如果根据类型查找没有找到,则根据属性的名称按照name查找对象.
4.如果上述的方式都没有找到,则报错实例化对象失败.

原则:Spring容器中要求 接口必须单实现. 如果有多实现则通过@Qualifier(“xxxx”)区分即可
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值