Spring Boot入门实验
一、 实验目的和要求
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 方式搭建项目
- 使用maven创建项目
- 导入依赖
<!-- 父工程 -->
<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>
- 编写主程序启动类
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
SpringApplication.run(SpringBootApp.class,args);
}
}
- 创建访问 Web 的 controller
@RestController
public class MyController {
@GetMapping("/hello")
public String hello(){
return "创建第一个springboot项目!";
}
}
(二)Spring Initializr 方式搭建项目
- 选择 Spring Initializr 导航创建项目
进入场景依赖页面,了解左边属于开发场景汇总部分、中间属于场景依赖 启动器部分、右边属于选中的场景依赖。本实验选择 Spring Web 依赖启动器。
- 创建 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方法省略
}
- Application.properties文件
user.stdId=1008611
user.userName=坤哥
user.hobby=唱,跳,rap
- 创建 service 层的实体类 UserService
public class UserService {
@Autowired
private User user;
public User getUser() {
return user;
}
}
- 自定义配置类,创建 config 包的 MyConfig 类
@Configuration
public class MyConfig {
@Bean
public UserService getUserService(){
return new UserService();
}
}
- 创建 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";
}
}
- 编写测试类
@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入门实验的更多相关文章
- Spring Boot入门系列(十七)整合Mybatis,创建自定义mapper 实现多表关联查询!
之前讲了Springboot整合Mybatis,介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.mybatis 插件自动生成的mappe ...
- 161103、Spring Boot 入门
Spring Boot 入门 spring Boot是Spring社区较新的一个项目.该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验 ...
- spring boot 入门操作(二)
spring boot入门操作 使用FastJson解析json数据 pom dependencies里添加fastjson依赖 <dependency> <groupId>c ...
- spring boot 入门操作(三)
spring boot入门操作 devtools热部署 pom dependencies里添加依赖 <dependency> <groupId>org.springframew ...
- Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序
一.前言 什么是Spring Boot?Spring Boot就是一个让你使用Spring构建应用时减少配置的一个框架.约定优于配置,一定程度上提高了开发效率.https://zhuanlan.zhi ...
- Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版
一.前言 什么是MyBatis?MyBatis是目前Java平台最为流行的ORM框架https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境1.操作系统: ...
- Spring Boot 入门教程
Spring Boot 入门教程,包含且不仅限于使用Spring Boot构建API.使用Thymeleaf模板引擎以及Freemarker模板引擎渲染视图.使用MyBatis操作数据库等等.本教程示 ...
- Spring Boot入门(五):使用JDBC访问MySql数据库
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序开发的过程中,操作数据库是必不可少的部分,前面几篇博客中,也一直未涉及到数据库的操作,本篇博客 就 ...
- Spring Boot入门(四):开发Web Api接口常用注解总结
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...
- Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...
随机推荐
- SpringMVC拦截器配置后端登录校验
引 创建拦截器的方法有多种,可以继承HandlerInterceptorAdapter类,也可实现HandlerInterceptor接口.接口中有三个方法: preHandle:在业务处理器处理请求 ...
- visual studio 2008的试用版评估期已结束(附无法使用产品密钥)的解决方法
visual studio 2008过了试用期后再次启动提示对话框:visual studio的试用版评估期已结束. 解决办法: 第一步,在"控制面板"中启动"添加删除程 ...
- vue使用websoket(非封装)
上代码: create:function(){ this.initWebpack() } methods:{ initWebpack(){//初始化websocket let us ...
- layui.js
目录 用法: 1.在base.js里导入layui插件 2.在使用的html页面里引入 base.js lucky.js index.html 用法: 1.在base.js里导入layui插件 2.在 ...
- 使用.NET查询日出日落时间
在WPF中,通过资源文件实现主题切换是个常见的功能,有不少文章介绍了如何实现手动切换主题.那如何实现自动切换主题呢?通常有两种机制:一是跟随系统明暗主题切换,二是像手机操作系统那样根据日出日落时间自动 ...
- 一个list分成 list长度/step_length 向上取整个小list集合
一.具体实现方法 /** * 将一个list按照新的步长分成list长度/step_length 向上取整个小list * @param list * @param step_length * @re ...
- IPv6 — 网际协议第 6 版
目录 文章目录 目录 IPv6 IPv6 的发展 IPv6 网络基本概念 IPv6 的特性 IPv4 与 IPv6 的比较 IPv6 IPv6(Internet Protocol version 6, ...
- OpenStack 的 SR-IOV 虚拟机热迁移
目录 文章目录 目录 前言列表 前言 SR-IOV Pass-through 虚拟机热迁移的问题 基于 macvtap 层的 SR-IOV 虚拟机热迁移 Workaround SR-IOV Pass- ...
- VSCode:让VSCode终端面板显示到右边
很简单,右击下方终端面板,选中"将视图移动到侧面板": 可以看到终端成功显示到右边了:
- MinIo对象存储文件上传,下载,预览,批量上传,创建桶等
MinIo 操作工具类 MinIo 旧中文文档 MinIo 英文文档 MinIo 官网地址 https://min.io/ package com.ming.utils; import io.mini ...