一、 实验目的和要求

1、掌握使用 IDEA 通过 Maven 和 Spring Initializr 的方式创建 Spring Boot 应用程序;

2、掌握 Maven 的工作原理;

3、了解 spring-boot-starter-parent 的配置内容;

4、掌握配置场景依赖启动器 starter 的方式,了解 starter 的原理;

5、掌握利用 starter 扩展 Spring Boot 应用程序的功能;

6、掌握通过配置文件修改 Spring Boot 应用程序的初始化参数及自定义参数的 注入;

7、掌握使用 Spring Boot 编写简单的单元测试;

8、完成 Spring Boot 简单入门程序的编写。

9、独立完成实验

10、书写实验报告书

二、 实验平台

1、 JDK 1.8 或更高版本

2、 Maven 3.3+

3、 IntelliJ IDEA

三、实验内容及结果

(一)Maven 方式搭建项目

  1. 使用maven创建项目

  2. 导入依赖
<!-- 父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
</parent>
<!-- 起步依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
  1. 编写主程序启动类
@SpringBootApplication
public class SpringBootApp { public static void main(String[] args) {
SpringApplication.run(SpringBootApp.class,args);
} }
  1. 创建访问 Web 的 controller
@RestController
public class MyController { @GetMapping("/hello")
public String hello(){
return "创建第一个springboot项目!";
} }

(二)Spring Initializr 方式搭建项目

  1. 选择 Spring Initializr 导航创建项目

进入场景依赖页面,了解左边属于开发场景汇总部分、中间属于场景依赖 启动器部分、右边属于选中的场景依赖。本实验选择 Spring Web 依赖启动器。

  1. 创建 domain 层实体类 User
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private String stdId;
private String userName;
private String[] hobby;
@Override
public String toString() {
return "User{" +
"stdId='" + stdId + '\'' +
", userName='" + userName + '\'' +
", hobby=" + Arrays.toString(hobby) +
'}';
}
getter,setter方法省略
}
  1. Application.properties文件
user.stdId=1008611
user.userName=坤哥
user.hobby=唱,跳,rap
  1. 创建 service 层的实体类 UserService
public class UserService {
@Autowired
private User user; public User getUser() {
return user;
} }
  1. 自定义配置类,创建 config 包的 MyConfig 类
@Configuration
public class MyConfig { @Bean
public UserService getUserService(){
return new UserService();
} }
  1. 创建 controller 层的 UserController 类
@RestController
public class UserController { @Autowired
private UserService userService;
public User getUser(){
User user = userService.getUser();
return user;
} @GetMapping("/h")
public String hello(){
return "hello springboot";
} }
  1. 编写测试类
@SpringBootTest
public class UserControllerTest { @Autowired
public UserController userController;
@Test
public void userController(){ User user = userController.getUser(); List<String> hobby = Arrays.asList(user.getHobby());
System.out.println("学号:"+user.getStdId());
System.out.println("姓名:"+user.getUserName());
System.out.println("爱好:"+hobby);
System.out.println(user.toString()); }
}

四、心得体会

(1)Maven 方式和 Spring Initializr 方式创建 Spring Boot 项目有什么区别?

Maven方式创建时,需要自己导入起步依赖和父项目,然后根据需要选择导入相关的依赖,在使用Spring Initializr创建项目时,会自动生成起步依赖和父项目,在选择所需依赖后,会自动导入。

(2)解释项目 pom.xml 文件主要标签的意义

1)作用

通过给出的父项目的group ID, artifact ID and version导入父项目

2)作用

通过group ID, artifact ID and version导入相关依赖

(3)如何理解依赖启动器 starter?

依赖启动器是一个聚合项目,每一个场景的依赖启动器都聚合了这个场景所需要的依赖包括了group ID, artifact ID and version,这样只需要引入场景启动器,就可以使用这个场景下的所有依赖,不需要人为管理版本号。

Spring Boot入门实验的更多相关文章

  1. Spring Boot入门系列(十七)整合Mybatis,创建自定义mapper 实现多表关联查询!

    之前讲了Springboot整合Mybatis,介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.mybatis 插件自动生成的mappe ...

  2. 161103、Spring Boot 入门

    Spring Boot 入门 spring Boot是Spring社区较新的一个项目.该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验 ...

  3. spring boot 入门操作(二)

    spring boot入门操作 使用FastJson解析json数据 pom dependencies里添加fastjson依赖 <dependency> <groupId>c ...

  4. spring boot 入门操作(三)

    spring boot入门操作 devtools热部署 pom dependencies里添加依赖 <dependency> <groupId>org.springframew ...

  5. Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序

    一.前言 什么是Spring Boot?Spring Boot就是一个让你使用Spring构建应用时减少配置的一个框架.约定优于配置,一定程度上提高了开发效率.https://zhuanlan.zhi ...

  6. Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版

    一.前言 什么是MyBatis?MyBatis是目前Java平台最为流行的ORM框架https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境1.操作系统: ...

  7. Spring Boot 入门教程

    Spring Boot 入门教程,包含且不仅限于使用Spring Boot构建API.使用Thymeleaf模板引擎以及Freemarker模板引擎渲染视图.使用MyBatis操作数据库等等.本教程示 ...

  8. Spring Boot入门(五):使用JDBC访问MySql数据库

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序开发的过程中,操作数据库是必不可少的部分,前面几篇博客中,也一直未涉及到数据库的操作,本篇博客 就 ...

  9. Spring Boot入门(四):开发Web Api接口常用注解总结

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...

  10. Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...

随机推荐

  1. 技术干货| 阿里云基于Hudi构建Lakehouse实践探索「内附干货PPT下载渠道」

    ​简介: 阿里云高级技术专家王烨(萌豆)在Apache Hudi 与 Apache Pulsar 联合 Meetup 杭州站上的演讲整理稿件,本议题介绍了阿里云如何使用 Hudi 和 OSS 对象存储 ...

  2. dotnet C# 如果在构造函数抛出异常 析构函数是否会执行

    假设在某个类型的构造函数里面抛出了异常,那么这个对象的析构函数是否会执行 如下面代码 private void F1() { try { _ = new Foo(); } catch { // 忽略 ...

  3. 5.k8s Service四层负载:服务端口暴露

    题目一:暴露服务service 设置配置环境: [candidate@node-1] $ kubectl config use-context k8s Task 请重新配置现有的 deployment ...

  4. Solution Set - 数论相关

    绝了,六道题都差一步想出来或者差一个细节就开始看题解. CF906D Link&Submission. 要求 \(a^b\bmod p\),那就要求 \(b\bmod \varphi(p)\) ...

  5. 等保测评--postgresql修改默认超级用户,建立普通用户使用

    1.postgresql权限说明 SELECT INSERT UPDATE DELETE TRUNCATE REFERENCES TRIGGER CREATE CONNECT TEMPORARY EX ...

  6. 使用 Docker 部署 VS Code in The Browser

    1)介绍 GitHub:https://github.com/coder/code-server 在日常学习工作中,Vscode 已成为我们首选的代码编辑器.然而,其局限性在于当我们从家到公司移动时, ...

  7. Aliplayer通过HLS流式播放Aliyun Mps(媒体处理)转码的加密视频

    前言 公司需求,上传的视频需要加上公司Logo,同时播放需要采用流式播放禁止下载. 现有的环境在阿里云上,所以自然想到了阿里云的产品[媒体处理]的转码功能. 转码配置 配置比较简单,采用阿里云HLS标 ...

  8. 解锁高效创新:IPD策略如何重塑产品开发流程

    IPD(集成产品开发)涵盖了产品从创意提出到研发.生产.运营等,包含了产品开发到营销运营的整个过程.围绕产品(或项目)生命周期的过程的管理模式,是一套生产流程,更是时下国际先进的管理体系.IPD(集成 ...

  9. Pageoffice6 实现后台生成单个PDF文档

    在实际项目中经常遇到这样的场景,客户希望后台动态生成PDF文档,目前网上有一些针对此需求的方案,如果您想要了解这些方案的对比,请查看后台生成单个Word文档中的"方案对比". Pa ...

  10. 解决”将公司Linux服务器上的脚本导出到windows上打开串行的“问题

    目录 一.前期准备 二.回车转换 一.前期准备 1.在linux服务器上写一个简单的脚本. [root@node5 ~]# vim linux脚本.sh [root@node5 ~]# cat lin ...