Springboot基础学习之初识SpringBoot
作者:IPostYellow 发布时间:2022-08-18 08:48:59
一、图示
spring再简化:SpringBoot-jar:内嵌tomacat;微服务架构!
二、springboot是什么
spring是一个为了解决企业级应用开发的复杂性而创建的,简化开发
三、spring是如何简化开发的?
为了降低Java开发的复杂性,Spring提供了以下四种关键策略:
1.基于pojo的轻量级和最小侵入性编程
2.通过IOC、依赖注入(DI)和面向接口实现松耦合
3.基于切面(AOP)和惯例进行声明式编程
4.通过切面和模板减少样式代码
四、springboot
springboot基于spring开发,springboot本身不提供spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于spring框架的应用程序。也就是说,它并不是用来替代spring的解决方案,而是和spring框架紧密结合用于提升spring开发者体验的工具。springboot以约定大于配置的核心思想,默认帮我们进行了很多设置,多数springboot应用只需要很少的spring配置。同时它集成了大量常用的第三方库配置(例如Redis、MongoDB、Jpa、RabbitMQ、Quartz等等),springboot应用中这些第三方库几乎可以零配置的开箱即用。所以,springboot是整合了所有的框架,它不是什么新框架。
五、第一个spingboot程序
环境:
jdk1.8
maven 3.8.1
mysql 5.7
springboot 2.4.5
打开idea,点击File-New-Project
选中spring initializr
点击next
之后写的内容和maven中就一致了,再next
然后开始选需要的依赖,这里我们选Web里的springWeb依赖,这样就会帮我自动下载一些web相关的依赖并导入。
开始以后我们能看到项目里面有这些内容:
我们打开这个SpringbootstudyApplication
package com.hj.springbootstudy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//程序的主入口!不能删也不能改,相当于main!
@SpringBootApplication
public class SpringbootstudyApplication {
//springApplication
public static void main(String[] args) {
SpringApplication.run(SpringbootstudyApplication.class, args);
}
}
发现他是主函数文件,我们运行这个主函数,能够发现服务被启动了!
然后浏览器输入localhost:8080
能够看到我们的web项目已经被启动了!
我们在这个主函数文件目录下,新建以下老熟悉的文件夹:
这样就和之前我们项目开发看着就差不多了
再来看看pom.xml的内容
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hj</groupId>
<artifactId>springbootstudy</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springbootstudy</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--web依赖:tomcat,dispatcherServlet.xml都由依赖做-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--所有的springboot依赖都是spring-boot-starter开头的-->
<!--单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!--打jar包插件-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
这里包括了:
parent:继承spring-boot-starter-parent的依赖管理,控制版本与打包内容等
dependencies:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口(该依赖中包含了Spring MVC),官网对它的描述是:使用Spring MVC构建Web(包括RESTful)应用程序的入门在,使用Tomcat作为默认嵌入式容器。spring-boot-starter-test用于编写单元测试的依赖包。
build:构建配置部分,默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把spring boot应用打包成jar来直接运行
如果spring-boot-starter-web依赖没有被导入,你会发现一运行就结束了
来源:https://blog.csdn.net/Doraemon_Nobita/article/details/117044098


猜你喜欢
- 在本篇中我要介绍两个概念,我觉得这两个东西必须一起来介绍,这样才能连贯。C# 2.0里我们已经匿名方法了,现在类型也玩起匿名来了,怪不得大家
- @PathVariable和@RequestParam传参为空@RestControllerpublic class UserControl
- 前言在很多时候,我们代码中会有很多分支,而且分支下面的代码又有一些复杂的逻辑,相信很多人都喜欢用 if-else/switch-case 去
- 前言:本文源码基于spring-framework-5.3.10。mvc是spring源码中的一个子模块!一、RequestMappingH
- 问题:什么是自旋锁?说一下 synchronized 底层实现原理?多线程中 synchronized 锁升级的原理是什么?1. 轻量级锁的
- 本文实例为大家分享了Unity3D Ui利用shader添加效果的具体代码,供大家参考,具体内容如下// Upgrade NOTE: rep
- 基本布局演示1. 定义包含GridView 的 main.xmk<?xml version="1.0" encod
- 一、前言我们经常会遇到业务想看debug日志的问题,但是debug日志频繁打印会对日志查看有影响,且日志多对系统也会有一定的压力,因此,如果
- 前端调用后端接口,获得数据并渲染一、介绍一个完善的系统,前后端交互是必不可少的,这个过程可以分成下面几步:前端向后端发起请求后端接口接收前端
- 我们将会从以下的几点理解java线程的一些概念:线程的基本概念和优劣之处创建一个线程的两种方式线程的属性线程的状态synchronized可
- 本文实例讲述了java基于AES对称加密算法实现的加密与解密功能。分享给大家供大家参考,具体如下:package com.soufun.co
- 前言gps定位服务的学习是这段时间gps课程的学习内容,之前老师一直在将概念,今天终于是实践课(其实就是给了一个案例,让自己照着敲).不过在
- (1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对
- 缘起公司医疗业务人手比较少【小而美】的团队~ 较少采用的前端技术架构是:toC:小程序 toB2C: Flutter + H5(SPA -
- 前言本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
- 1.相关概念Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性。建
- 在WPF的DrawingContext对象中,提供了基本的绘制椭圆和矩形的API:DrawEllipse和DrawRectangle。但是,
- 本文实例为大家分享了C#实现影院售票系统的具体代码,供大家参考,具体内容如下本人认为此项目的难点有4点1.首先是将解析完的XML文件绑定到T
- 有很多制作精良的APP都自带点击音效,那么如何简单的来实现这一效果,这里需要使用到的一个概念叫做SoundPool,这个类主要用于播放一些比
- 本文实例为大家分享了Android实现注册界面的具体代码,供大家参考,具体内容如下LinearLayout 控制布局TextView 用于显