Boot笔记

SpringBoot

入门案例开发步骤

注意因为其本质还是maven工程所以还是要配置本地maven的不然依赖导入不成功。

image-20220511165441601

点击新建模块选择Spring Initializr(随后就类似配置maven工程一样配置就好了主要有以下几点注意)

image-20220511165304639

其他的都是和maven一样的配置

下一步后选择你要的模板我这里用的web就选spring web

image-20220511165416783

之前我接触了spring框架的时候就觉得简化了太多了,现在使用boot你连配置文件依赖那些都不用自己写了,直接去写类就好了

image-20220511165810418

这里我就写了一个controller

这里不用任何插件,直接用类启动就部署好了服务器就可以测试接口了

image-20220511170055569

image-20220511170141975

真是太强大了!!!!

其实我们观察其pom文件发现他主要实现原理

image-20220511170552864

开发springboot工程必须联网,如果不是使用idea这种可以直接下载的开发工具直接到官网快速创建

image-20220511170953472

image-20220511171005414

image-20220511171204306

SpringBoot快速启动

他的强大之处还在于不用依赖于其他插件,当其他人要用我们的工程进行测试时我们直接将工程打包生成的jar文件发给对方,对方在文件所在目录直接打开终端输入命令

java -jar springboot_01_quickstar-0.0.1-SNAPSHOT.jar

运行文件就好了

image-20220511171952490

image-20220511172031705

image-20220511172230185

请求成功

image-20220511172244459

注意——jar支持命令行启动需要依赖maven插件支持

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

起步依赖

内置有多个起步依赖,点进去看可以发现springboot内部有多个依赖管理,根据我们的需求快速完成配置

image-20220511193456153

image-20220511193605333

前面已知springboot程序内置了tomcat插件,默认也是用它启动,那我们不想用这个服务器,想换一个怎么办?其实不难想到,因为boot是通过继承实现的要想不使用父类的依赖我们就应该使用排除以来的方法,以下是将tomcat排除,引入jetty的方式

框起来的是我添加的代码段

image-20220511194658291

基础配置

配置文件格式(三种格式)

1.默认的配置文件

image-20220511200141300

2.后缀为yml的配置文件(注意配置格式 :后有个空格才能写具体配置)

image-20220511200243969

3.后缀为yaml的配置文件格式和yml的一样

image-20220511200324357

注意如果自己添加的配置文件在配置时没有提示,可以去项目管理添加下

image-20220511200417220

image-20220511200514140

这三个文件优先级依次递减(一般配置在yml文件中配置)

yaml的数据格式

image-20220511201119721

image-20220511201354500

image-20220511201503842

yaml数据读取方式

也是三种,其中第三种是目前常用方式

以下是一个yaml里面的数据

lesson: SpringBoot

server:
  port: 80

enterprise:
  name: ember
  age: 21
  tel: 12345678912
  subject:
    - Java
    - 前端
    - 大数据

1.通过@Value注解向属性注入(像之前我们注入jdbc.properties的数据一样)

image-20220511204740765

@Value("${lesson}")
private String lesson;
@Value("${server.port}")
private Integer port;
@Value("${enterprise.subject[0]}")
private String subject_00;

2.创建个Environment类型属性用于存放所有配置文件中的数据

//将配置变量中的信息全部交给环境属性(通过其快速获得需要的值)
@Autowired
private Environment environment;
    System.out.println(environment.getProperty("lesson"));
        System.out.println(environment.getProperty("port"));
        System.out.println(environment.getProperty("enterprise.age"));
        System.out.println(environment.getProperty("enterprise.subject[1]"));

3.创建个实体类对数据进行封装

image-20220511204427035

package com.ember.domain;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Arrays;
//将其加载成bean使spring能读取到他
@Component
//定义其要封装的是配置文件中的哪个属性
@ConfigurationProperties(prefix = "enterprise")

public class Enterprise {
    private String name;
    private String age;
    private String tel;
    private String[] subject;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String[] getSubject() {
        return subject;
    }

    public void setSubject(String[] subject) {
        this.subject = subject;
    }

    @Override
    public String toString() {
        return "Enterprise{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", tel='" + tel + '\'' +
                ", subject=" + Arrays.toString(subject) +
                '}';
    }
}

随后在要用的类中直接用注解自动装配就好了

image-20220511204528640

image-20220511204539558

image-20220511204549511

多环境开发配置

看看旧的方式(也是可以使用的)在yml文件中配端口为例子

#设置启用的环境
spring:
  profiles:
    active: dev
    #配置多个开发环境
    #开发
  server:
  	port: 80
  spring:
  	profiles: dev
---
#生产

server:
  port: 81
spring:
  profiles: pro
---
#测试

server:
  port: 82
spring:
  profiles: test

新的

#设置启用的环境
spring:
  profiles:
    active: test
#配置多个开发环境
#开发环境
config:
  activate:
    on-profile: dev
server:
  port: 80


---
#生产
config:
  activate:
    on-profile: pro
server:
  port: 81

---
#测试
config:
  activate:
    on-profile: test
server:
  port: 82

yaml也是一样的配置

但是properties里面配置有点不一样了,我们设置个主配置文件,设置多个子配置文件image-20220512113904906

在主配置文件中使用xxx(其文件名中的-xxx)来调用其配置

image-20220512114035358

image-20220512114102030

开发中多环境的且换我们在配置好多环境之后,不用每次要变环境都到代码中去改

可以直接通过命令在终端启动时选着启动环境

首先我们clean maven再打包maven工程,这里注意打包之前要跳过测试(具体多种方式看maven进阶)

image-20220513103239738

在文件夹中打开打好的ar包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LKQgmtsG-1652948742750)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20220513103258877.png)]

image-20220513103345252

用默认环境的启动方式

java -jar springboot_01_quickstar-0.0.1-SNAPSHOT.jar                                        

更改环境为test的启动方式

java -jar springboot_01_quickstar-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

不光可以临时改变环境,也可以改变其他配置(比如改变端口号)

image-20220513103917779

多环境开发兼容问题(Maven & boot)

在maven中的配置也可以实现多环境,boot也可以配置多环境,而起主导作用的是Maven中的配置,boot中只是一个辅助

image-20220513111326868

image-20220513111343373

image-20220513111354496

image-20220513111450222

配置文件分类

image-20220513113003172

就是在系统打包后,想要覆盖原始配置我们可以在打包的jar文件所在目录创建个application.yml文件去修改环境中的配置

也可以在目录下创建config文件夹在理写一个配置文件这样优先级更高

整合

SpringBoot整合junit

原来的spring整合方式

image-20220513121328253

现在我们的springboot更加简单

image-20220513171914468

@SpringBootTest
class SpringBootTest1ApplicationTests {
    @Autowired
   private BookService bookService;

    @Test
    void contextLoads() {
        bookService.service();
    }

}

也就是说白了我们直接使用@SpringBootTest就完成了junit的整合

SpringBoot整合MyBatis

因为springboot是基于spring上的简化所以根本就不用去整合spring,要整合Mvc直接在创建boot工程的时候就勾选起步依赖就好了

最重要的就是我们要手动整合Mybatis

首先创建工程勾好需要的起步依赖

image-20220513172702161

2.根据业务完成实体类

image-20220513175510179

3.在配置文件中配置datasource(数据库连接信息)

image-20220513175315554

4.定义数据层接口和映射配置

image-20220513175556438

最后就可以写测试类测试接口了

综合案例ssm

image-20220513175841594

这里和原来其实没多大区别,具体添加改动如下

删除了config包(因为springboot不用你手动去配置配置类了)

没有了webapp包,那我们的页面应该放在哪呢

网上说应该放在resources下的这两个包中(一般直接放在static文件夹下)

image-20220514111424921

直接放在static下的HTML文件路径相当于放在根目录直接用/xxx.html就能访问

image-20220514111549212

具体要配置的是下面三点

image-20220514111653336

<!--TODO        添加必要的依赖坐标-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
        <!--      因为页面中使用了jsp所以要用下面依赖-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

2.在dao接口上添加@Mapper

image-20220514111918254

3.在yml文件中配置端口号和连接信息

#TODO 配置数据源相关信息

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 20001103
server:
  port: 80

这里遇到个问题就是jsp页面无法显示,首先你要检查和jsp相关的依赖是否手动配置了

其次在application.properties文件中配置下jsp视图解析

spring.mvc.view.prefix=/jsp/

spring.mvc.view.suffix=.jsp

然后我又发现个问题就是controller中使用return无法跳转页面原来在springboot中书写跳转方式最好规范

原来我们是这样写的

    return "redirect/page1.html";
    return "redirect/register.jsp";

我发现用了springboot后不论我怎么更改路径都无法跳转

后来我发现

    return "redirect:/page1.html";
    return "redirect:/register.jsp";

这样写后就能成功跳转了。目前为止springboot的简单使用和ssm整合就到这了,springboot的其他内容放到Springboot2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值