本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/83
自己能够快速的开始一个Spring web项目。
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。它采用的是建立生产就绪的应用程序观点,优先于配置的惯例。
使用Spring Boot,你可以通过少量的代码,就可以创建一个独立的,产品级别的Spring应用,通俗的讲,就是“开箱即用”。
使用Spring Boot框架,可以大大简化你的开发模式,所有你想集成的常用框架,它都能帮你做到。
为所有的Spring开发提供一个从根本上更快的和广泛使用的入门经验
开箱即用,但你可以通过不采用默认设置来摆脱这种方式
提供一系列大型项目常用的非功能性特征
绝对不需要代码生成及XML配置,减少冗余代码
简化初始配置 ,可与主流框架集成;
内置Servlet容器,无需在打War包;
使用了Starter(启动器)管理依赖并版本控制;
大量的自动配置,简化开发,方便集成第三方;
提供准生产环境运行时的监控,如指标,健康,外部配置等;
入门门槛低,只要懂程序的java、c#、php、js都能快速入门
强大的生态,几乎没有什么功能是需要自己从头开始开发
部署方便,独立服务器也好、云部署也好、docker也好都非常方便
......
总之一句话:优点超乎你的想象!
环境这块可以自行搜索处理,这里不再赘述。
为了防止编辑器每次打开,maven的设置都会初始化,所以这里提前对新项目进行设置
Group
:项目组织的唯一标识符,通常分为多个段,自己使用随便设置即可(我一般使用com.zsr,zsr是我名字的缩写)
这里介绍两段的用法:第一段为域,第二段为公司名称 域又分为org、com、cn等,其中org为非营利组织,com为商业组织,cn表示中国 例如apache公司的tomcat项目:org.apache.tomcat - Group是org.apache - 域是org(tomcat是非营利项目) - 公司名称是apache - Artifact是tomcat
Artifact
:项目的唯一的标识符,就是项目的名称(不能有大写,都是小写!)
- 例如com.joshua317.hello - Artifact是hello,就是项目的名称
Grounp+Artifact
就相当于项目的坐标,保证了项目的唯一性
Name
:默认同Artifact
,声明了一个对于用户更为友好的项目名称,不是必须的
Description
:项目描述
Package name
:指定main目录里java下的包名称,默认为Group+Artifact
Packaging
:打包方式,默认jar
version
:指定了项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本
实际项目开发中,要根据自己的需要,选择合适的依赖包
然后点击Finish,就完成了简单的项目创建
初始化项目时,会自动下载springboot默认依赖的一些jar包,需要一会时间,我们等待它下载完成。之后我们可以看到项目的结构如下:
项目结构简单说明
src/main/java 下是主程序的java代码存放处
src/resource 是资源文件包括图片、Css、Javascript等静态文件和配置文件yml或properties文件
src/test/java 测试代码
.idea #IDEA 软件特有的文件夹,隐藏文件 .mvn #Maven项目特有的文件,隐藏文件 src #存放源码包括了java代码和配置文件和资源文件 main #java代码 java com pringbook SpringstudyApplication #启动类java文件 resource #资源文件包括静态文件 application.properties #项目的配置文件,比如配置服务器端口等 test #测试文件夹 mvnw #maven项目辅助文件,自动生成 mvnw.cmd #maven项目辅助文件,自动生成 pom.xml #maven项目配置文件,类似于C#的web.config study.iml #iml 是IDEA软件的项目标识文件,一般是自动创建的 Externel Libraries #lib文件,这个不用管,是自动的
默认在类上边使用了@SpringBootApplication注解,这个注解是一个符合注解,相当于同时使用
@SpringBootConfiguration 指定类为配置类 @EnableAutoConfiguration 开启自动配置 @ComponentScan 指定扫描路径
注意如果生成项目的时候没有设置Dependencies,选择web,那么这里要在Pom.xml中设置,Pom.xml设置依赖也非常的简单,直接把 的节点拷贝到pom依赖节点中即可。
Pom.xml属于maven项目结构的项目依赖项配置文件,主要管理第三方包的引用。
spring-boot-starter
:核心模块,包括自动配置支持、日志和 YAML
spring-boot-starter-test
:测试模块,包括 JUnit、Hamcrest、Mockito。
默认项目配置了spring-boot-starter和spring-boot-starter-test ,spring-boot-starter-web是因为在上述步骤中勾选了依赖web-》spring web,简单的配置如下:
<?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.5.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.joshua317</groupId> <artifactId>hello-world-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>hello-world-demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
默认情况下,项目在初始化的时候,已经生成了一个配置文件application.properties
但是application.properties 就是常规的 key=value 格式配置文件,当要配置的参数比较多就会发现他的层次不是那么清晰,不便于阅读。
所以我们创建一个yml格式的文件application.yml,注意该名称不能随意起名,必须是application.yml
yml(也叫yaml):是一种以数据为中心的配置文件, 比 json,xml 等更适合做配置文件,关于yml的格式后期会专门出一篇文章进行说明。
application.yml内容我们只做一个简单的配置。如下所示:
server: port: 8080 #端口号
通常,我们使用三层结构来编写。
应用层(Controller):负责页面访问控制
服务层(Service)层主要是业务类代码
数据层(Dao):目录主要用于实体与数据访问层(Repository)
生成如下目录
在controller下新建HelloWorldController.java (注意首字母大写)
在HelloWorldController中增加java代码
package com.joshua317.helloworlddemo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/hello") public class HelloWorldController { @RequestMapping("/index") public String index(){ return "Hello World"; } }Java
@RestController
它是一个复合注解,相当于同时使用了@Controller和@ResponseBody注解, Controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了!
点击运行,或者使用快捷键shift+f10
然后我们进行访问:http://127.0.0.1:8080/hello/index
至此,一个web项目环境就搭建成功了,使用起来还是很简单方便的。如果想要修改端口后,可以在application.yml文件中调整
或者使用命令行进行
1)选择 View> Tool Windows>Terminal
2)输入命令
mvn clean mvn install
在根目录下有个target 文件夹
输入命令,后则可以在浏览器中进行访问。
java -jar hello-world-demo-0.0.1-SNAPSHOT.jar
1.Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-web:jar:2.1.4.RELEASE less... (⌘F1) Inspects a Maven model for resolution problems.
未能加载spring-boot-starter-web:jar,这个应该是mvn管理器加载问题。
2.如果依赖包提示红色,说明maven的包没有加载下来,可以看下仓库的设置,然后重新拉取依赖包
3.端口问题
默认是8080端口,如果端口被占用了(例如mac的nginx默认是8080),需要修改,那么在 resources\application.yml中设置
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/83