SpringBoot学习记录

一 创建SpringBoot项目

1.1普通创建springboot项目

1.1.1步骤

  • 目标:手动搭建一个SpringBoot开发环境,实现Web的请求响应,浏览器访问在页面中输出helloworld
  • 实现步骤
    1. 创建Maven工程
    2. pom.xml文件中配置起步依赖
    3. 编写SpringBoot启动引导类
    4. 编写Controller
    5. 访问http://localhost:8080/hello 测试

1.1.2具体操作

1.创建Maven工程: 略
2.pom文件中配置起步依赖

在pom文件中添加以下内容
<!--继承一个pom文件-->
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.1.6.RELEASE</version>
    </parent>

<dependencies>
        <!--添加这个依赖意思是我要做web开发-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

3.编写SpringBoot启动引导类
main的java文件夹下,创建类com.hhu.DemoApplication

注意添加注解时如果红线,则点开右侧maven,刷新即可。如遇到不可刷新,则参照我的一篇记录,更换镜像服务器即可

@Configuration  // 代表当前类是一个配置类
@ComponentScan  //扫描包
@EnableAutoConfiguration    //开启自动配置
public class DemoApplication {
    public static void main(String[] args) {
        //启动当前SpringBoot应用
        SpringApplication.run(DemoApplication.class,args);
    }
}

4.编写Controller
注意:同一文件夹下创建 controller.HelloController类
在这里插入图片描述

@RestController
public class HelloController {
    @RequestMapping("/hello")   //提示路径用的
    public String hello(){
        return "hello world!";
    }
}

5.访问结果
在这里插入图片描述

1.2急速创建springboot项目

1.步骤

  1. 使用Spring Initializr创建Spring Boot
  2. 配置项目信息
  3. 勾选起步依赖
  4. 配置文件存储路径
  5. 再次编写入门案例Controller
  6. 访问http://localhost:8080/hello 接口测试

2.具体操作

1.使用Spring Initializr创建Spring Boot(必须联网)
2.略
3.略
4.略
勾选spring web 这个starter
在这里插入图片描述
5.编写Controller,同上
在这里插入图片描述
6.测试结果
在这里插入图片描述

1.3热部署

略,具体到时候用到再学

二 SpringBoot原理分析

2.1 依赖管理原理

依赖管理(Dependency Management0

  1. 继承了spring-boot-starter-parent的好处和特点
    • 默认编译java 1.8
    • 默认编码UTF-8
    • 通过spring-boot-dependencies的pom管理所有公共依赖的版本,这样就不用写依赖的版本了

2.2 starter原理

starters是依赖关系的整理和封装,是一套依赖坐标的整合,可以让导入应用开发的依赖坐标更方便。
有了这些Starters,你获得Spring和其整合的所有技术的一站式服务。无需配置、无需复制粘贴依赖坐标,一个坐标即可完成所有入门级操作。举例:JPA or Web开发,只需导入spring-boot-starter-data-jpaspring-boot-starter-web

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

每个Stater包含了当前功能下的许多必备坐标依赖,这些依赖坐标是项目开发,上线和运行必须的。同时这些依赖也支持依赖传递。

2.3 自动配置原理

太繁琐,而且对使用springboot没有帮助,略

2.4 配置文件

SpringBoot是约定大于配置的,所有很多配置都有默认值。
可以使用application.properties或application.yml自定义配置
第一种配置方法
示例
1.在resources下创建application.yml文件
(底色是黄色,代表没有映射过去)

#普通数据类型
username1: yufengxu
#对象
person:
  name: yufengxu
  age: 18
  sex: male
  birthday: 1997/1/1
  # 数组
  citys:
    - beijing
    - xizang
    - nanjing
  # 集合
  animals:
    - name: dog
      age: 2
    - name: tiger
      age: 3

server:
  port: 8080

2.注入数据
例:将person.name注入到HelloController里

@RestController
public class HelloController {
    @Value("${person.name}")
    private String name;

    @RequestMapping("/hello")
    public String hello(){
        return "I really wanna be a excellent programmer!"+"\n"+name;
    }
}

3.效果如下

第二种配置方法
示例:
在java的com.hhu.***包下创建 domain.Person和domain.Animal
在这里插入图片描述
Person

@ConfigurationProperties(prefix = "person")
@Component //把当前的对象注入Spring容器中
public class Person {
    private String name;
    private Integer age;
    private String sex;
    private Date birthday;
    private String[] citys;

    private List<Animal> animals;
	下面Fn+alt+insert一键插入 所有的getter&setter 和toString方法    
}

Animal

public class Animal {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

HelloController

@RestController
public class HelloController {
    @Value("${person.name}")
    private String name;

    @Autowired //把该对象注入Controller中
    Person person;

    @RequestMapping("/hello")
    public String hello(){
        return ""+person;
    }
}

对于注解@ConfigurationProperties飘红
解决方法:在依赖中加入配置文件处理器的坐标即可

<!--配置文件处理器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

效果展示
在这里插入图片描述

三 SpringBoot与其他技术整合

3.1 整合Mybatis

使用SpringBoot整合Mybatis,完成查询所有功能
实现步骤

  1. 创建SpringBoot工程
  2. 勾选依赖坐标
  3. 数据库连接信息
  4. 创建User表,创建实体UserBean
  5. 编写三层架构:Mapper,Service,Controller,编写查询所有的方法
  6. 配置Mapper映射文件
  7. 在application.properties中添加MyBatis配置,扫描mapper.xml和mapper
  8. 访问测试地址http://localhost:8080/queryUsers

1.创建工程
2.勾选依赖信息
在这里插入图片描述
3.数据库连接信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值