技术标签: spring boot java 后端 框架_SpringBoot
目录
对于SpringBoot概念和开发工具配置进行了准备,这一章开始搭建SpringBoot的项目入门,开发工具是idea.
然后创建项目名称为SpringBoot3,点击下一步
点击完成,之后再idea中就能看到新建的SpringBoot的项目了,稍等idea下载相关的jar,然后就能看到项目的完成目录结构,如果是第一次配置 Spring Boot 的话可能需要等待一会儿 IDE下载相应的 依赖包.
项目结构还是看上去挺清爽的,少了很多配置文件,我们来了解一下默认生成的有什么:
Springboot201Application: 一个带有 main() 方法的类,用于启动应用程序
Springboot201ApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
application.properties:一个空的 properties 文件,可以根据需要添加配置属性
pom.xml: Maven 构建说明文件
//@RestController注解
//该注解是 @Controller 和 @ResponseBody 注解的合体版
//(如果只单用@Controller,页面无返回值)
@RestController
public class HelloController {
@GetMapping(value = "hello")
public String hello(){
return "hello springBoot 版本:2.7.14";
}
}
//Component扫描 跟SpringBootApplication冲突
//@ComponentScan(value = "com.example.springboot2_01")
//包扫描 外部的包也能被扫描到
@SpringBootApplication(scanBasePackages = "com.example")
public class SpringBoot201Application {
/**
*
* springBoot版本 v2.7.14
* 需要jdk1.8以上
* maven 3.5+
* @param args
*/
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot201Application.class, args);
String[] beanDefinitionNames = run.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
System.out.println("bean名字:"+beanDefinitionName);
}
}
}
在这个类中SpringBoot201Application,右键 run java application 然后就能看到控制台输出(
然后在浏览器访问地址如下,这就是一个最简单的SpringBoot入门案例。启动类启动
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--springBoot父类启动器-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.14</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--本项目信息-->
<groupId>com.example</groupId>
<artifactId>SpringBoot2_01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringBoot2_01</name>
<description>SpringBoot2_01</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!--springWeb依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入其他的springboot官网starter 自动导入相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!--热部署,改代码不需要重启-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- lomBok注解依赖包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- 测试类依赖包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mysql依赖jar-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- springboot打包插件 打成一个胖包 包含所有的东西 直接运行-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.project-lombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
我们可以看到一个比较陌生一些的标签 <parent>
,这个标签是在配置 Spring Boot 的父级依赖:
<!--springBoot父类启动器-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.14</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
重点:有了这个,当前的项目才是 Spring Boot 项目,spring-boot-starter-parent 是一个特殊的 starter。这里就体现了SpringBoot的依赖管理,这个父启动器依赖中规定了各种启动器依赖jar包的版本,使用它之后,常用的包依赖就可以省去 version 标签。
Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Java 应用的入口方法。
//Component扫描 跟SpringBootApplication冲突
//@ComponentScan(value = "com.example.springboot2_01")
//包扫描 外部的包也能被扫描到
@SpringBootApplication(scanBasePackages = "com.example")
public class SpringBoot201Application {
/**
*
* springBoot版本 v2.7.14
* 需要jdk1.8以上
* maven 3.5+
* @param args
*/
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot201Application.class, args);
String[] beanDefinitionNames = run.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
System.out.println("bean名字:"+beanDefinitionName);
}
}
}
@ComponentScan(basePackages= {"com.example.*"})
ComponentScan用于加载指定的自定义包,默认加载当前包的子包
@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、@EnableAutoConfiguration、@ComponentScan; 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。
其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。
Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下(这里为 com.thit.springboot 包)
Spring Boot 使用一个全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目录或者类路径的 /config 下。这两种配置文件实际上没什么大的区别,这是格式不一样,yml便于根据不同的开发测试生产环境,引入其对应环境的yml文件
Spring Boot 不仅支持常规的 properties 配置文件,还支持 yml 语言的配置文件。yml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。
Spring Boot 的全局配置文件的作用是对一些默认配置的配置值进行修改。
在目前的 Spring Boot 项目中,当发生了任何修改之后我们都需要重新启动才能够正确的得到效果,这样会略显麻烦,Spring Boot 提供了热部署的方式,当发现任何类发生了改变,就会通过 JVM 类加载的方式,加载最新的类到虚拟机中,这样就不需要重新启动也能看到修改后的效果了。我们往 pom.xml 中添加一个依赖就可以了:
<!--热部署,改代码不需要重启-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
随意更改项目,不要重启,即可查看最新的效果
文章浏览阅读1.7k次。jQuery很强大,你可以使用它来实现任何你想要实现的效果。今天为大家推荐一些图像缩放效果插件。1. Zoomer Gallery该插件可以将你的图片列表转换成漂亮的画廊,这个画廊带有像Flash一样缩放图片的效果。Zoomer Gallery 插件令你的界面看起来简单美观。它的大小为2KB,使用起来非常方便。2. Jcrop使用Jcrop可以轻松为_jquery 图片等比例缩放插件
文章浏览阅读259次,点赞4次,收藏7次。题目要求PC端ip地址全由DHCP协议自动生成,所以我们先处理LSW1和LSW2,再回头处理AR1。这里是基于端口的vlan划分 将vid配置映射给交换机的接口,从而实现vlan的划分。只需在AR1的 g0/0/0.1 和 g0/0/0.2两个虚拟子接口配置网关ip即可。由于整个题目都是在一个广播域内的,划分为两个vlan2,所以只需要划分两个子网即可。分别进入路由器的g0/0/0.1和g0/0/0.2接口执行DHCP下发。分别进入路由器的g0/0/0.1和g0/0/0.2接口设置以下命令。_把某个vlan网段设置为全网通
文章浏览阅读439次。本题来源于Sicily算法期末机考模拟题。_sicily 答案
文章浏览阅读239次。关系型数据库基于关系模型的数据库,而关系模型是通过二维表来保存的,所以它的存储方式就是行列组成的表,每一列是一个字段,每一行是一条记录。表可以看作是某个实体的集合,而实体之间存在联系,这就需要表与表之间的关联关系来体现,如主键外键的关联关系,多个表组成一个数据库,也就是关系型数据库。关系型数据库有多种,如 SQLite、MySQL、Oracle、SQL Server、DB2等等。在本节我们主要..._网络爬虫数据库信息表
文章浏览阅读1.8k次。使用PIP安装pyinstaller 1.下载PIP https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py2.python get-pip.py 安装pip 3. 执行 安装 pyinstaller pip install pyinstaller4.在CMD中运行pyinstaller,有显示信息表示安装_python转exe
文章浏览阅读1.2k次。文章目录1 安装1 离线安装go2 安装gcc 53 安装faiss3.1 利用Anaconda3直接安装Python环境3.2 编译源码(C++环境)3.2.1 步骤一:环境安装,安装gcc及g++3.2.2 安装Faiss依赖的数学库(openblas)3.2.3 安装Faiss依赖的数学库(lapack)3.2.4 编译安装Faiss3.2.5 测试Faiss2 编译vearch1 下载代码..._vearch教程 python
文章浏览阅读327次。Ubuntu16.04 已经出现N次循环登录的问题了,每次都重装,这次实在受不了了,撸起袖子就是干啊!循环登录的原因 有很多,我目前对它的发作原理并不是特别清楚,所以本次解决方案仅作参考。打印出根目录下.xsession_error,可以看到如下内容:openConnection: connect: 没有那个文件或目录cannot connect to brltty at :0upstart: g..._ubuntu upstart: gnome-session main process terminated with status 1
文章浏览阅读195次。本系统为职工人事管理系统毕业设计作品,系统分为七大模块:职工管理,部门管理,岗位管理,招聘管理,奖惩管理,薪资管理,培训管理系统默认有两个个角色:管理员,普通用户管理员(admin/admin123):可以操作所有功能、增加用户普通用户(test/test):只可查看记录、无法修改。
文章浏览阅读821次。设置编码格式a:设置eclipse的默认编码格式:window->preferences->Workspace->Text File Encodingb:设置单个项目的编码格式::右键项目——Properties——Resource——Text file encoding_eclipse修改编码
文章浏览阅读921次。一、表单事件:input事件当<input>、<textarea>的值发生变化时触发。此外,打开contenteditable属性的元素,只要值发生变化,也会触发input事件。input事件的一个特点,就是会连续触发,比如用户每次按下一次按键,就会触发一次input事件。select事件当在<input>、<textarea>中选中文本时触发。Change事件当<input>、<select>、<textarea>的_dom事件
文章浏览阅读2.6k次。1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数{ while(1) //无限循环 {led=0x1f; ..._单键控制led亮灭c语言
文章浏览阅读575次。前言本文介绍针对轩枫阁V3主题开发过程中,遇到的图片问题及加载优化。图片居中裁剪本站的每一篇文章,都会配一张570×200的特色图像,使文章不那么单调。然而移动端移动端首页图片为60×60的正方形配图,这里有两种解决方案。设置缩略图大小,在wp管理端-设置-多媒体,设置缩略图尺寸为1:1结合CSS3的background-size,将配图作为背景图,并显示中间的正方形区域即可方法一可以安装插件,将..._backgroundimage css lazyload