1,spring boot CLI
spring boot CLI是一个命令行工具,可以使用命令行界面来创建执行springboot应用程序的方法,当然也可以直接通过eclipse来创建执行spring boot项目,当然也不是必须要使用的。使用命令行来执行maven项目有一些常用的命令:https://blog.csdn.net/xiaxiaorui2003/article/details/52062216
2,依赖管理
关于maven项目的pom文件有着更加详细的介绍:https://blog.csdn.net/qq_17085463/article/details/78820645
spring boot团队提供了一个依赖项列表,以支持每个版本的spring boot版本。无需再配置文件中提供依赖项,spring boot会根据发行版本自行的配置依赖项
使用maven进行配置:
建立maven项目,在项目的pom文件中集成spring boot starter父项目来管理spring boot starter依赖项:
代码:
<parent>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring -boot-starter-parent </ artifactId>
<version> 1.5.8.RELEASE </ version>
</ parent>
依赖项配置:
在pom中添加依赖项,依赖项添加在<dependencies> </ dependencies>标签中
该依赖项有以下属性:
<dependency> </ dependency>:具体的依赖项
<groupId> </ groupId>:具体以来想的包名
<artifactId> </ artifactId>:具体依赖项的类名
在maven项目的pom中添加了该依赖项后,在执行项目的时候,spring boot会自动的检索本地仓库(本地仓库是spring从中心仓库中下载的依赖项保存到本地)是否有该依赖项的存在
若没有,则在中央仓库(行家有一个默认网址存储着很多依赖项,即包或者类)查找,如果中央仓库没有并且也没有显性的给出该依赖项的地址,那么项目运行会报错。当然,也可以
显性的给出该依赖项的URL。需要在<repositories> </ repositories>标签中声名一个仓库。
具体格式:
<repository> </ repository>:具体的仓库
<id> </ id>:仓库的id,即想要依赖项的包名
<url> </ url>:具体依赖项的网址
3,项目结构
一般的web项目中的代码分为五个板块:
(1)应用:项目的入口,项目从这个文件中的一个java文件中开始执行,因此此包中只有一个java文件,这个文件的命名为:***应用程序
,该文件中必须包含一个主要函数,作为此类的入口,也是作为整个项目的入口。另外,这个类还必须包含一个注解@SpringBootApplication注解,这个注解
是在项目开始执行前针对POM中的配置开始对项目中需要的插件包等进行部署因此必须在项目的这个入口类添加此注解。
(2)模型:MVC中的男,即模型,也就是项目中的表现层,网络项目中的页面等
(3)DAO:MVC中的V,即查看视图,表示数据库的视图,在项目中是以实体类的形式存在,与数据库进行对接
(4)控制器:MVC中的C,即项目中的控制层,
(5)服务:项目中针对不同实体的服务,即针对不同的需求进行不同的操作
4,创建一个实际的项目
(1)在eclipse中创建一个maven项目
(2)配置项目的pom文件:
a,配置项目的信息:
<groupId> com </ groupId>
<artifactId> example </ artifactId>
< version> 0.0.1-SNAPSHOT </ version>
<packaging> jar </ packaging>
<name> example </ name>
<description> Spring Boot的测试项目</ description>
事实证明,这些信息错误程序照样可以运行,很迷
B,配置<父> </父>标签,这个可不能错!!!
<parent>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-starter-parent </ artifactId>
<version> 2.1.0.RELEASE </ version>
<relativePath /> <! - lookup来自存储库的父 - >
</ parent>
c,配置项目的一些信息配置,比如项目的编码,运行java版本等
<properties>
<project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>
<project.reporting.outputEncoding> UTF-8 < /project.reporting.outputEncoding>
<java.version> 1.8 </java.version>
</ properties>
d,配置项目的依赖项
<dependencies>
<! - 这个是配置spring项目的一些最基本的依赖,必须包含在pom中 - >
<dependency>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-starter </ artifactId>
</ dependency>
<! - 这个是配置web项目所需要的依赖以及配置,例如Tomcat的配置,这里spring会自动的帮项目配置Tomcat环境,
运行成功后即可直接打开网页输入localhost:8080进入Tomcat执行本项目
- - >
<dependency>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-starter-web </ artifactId>
</ dependency>
<dependency>
<groupId> junit </ groupId>
<artifactId> junit </ artifactId>
<version> 4.11 </ version>
<scope> test </ scope>
</ dependency>
</ dependencies>
到此一个简单的spring boot项目的配置文件已经完成
(3)编写入口类
a,入口类所在的包。该包应该在src / main / java的包里面,可以定义在包com.application里面,命名可以为
项目名Application.b
,入口类具体的代码
首先是代码的整体板块,首先是定义类名,其中定义一个主要方法,和其他的类一样。
接着是添加注解,必须添加的一个注解@SpringBootApplication
该注解的作用上面已经做出阐述。接着在主函数里调用SpringApplication类的运行方法来启动项目。该运行方法包含两个参数,一个是以是哪一个类作为启动类,类型为类类型,所以第一个参数一般为xxxApplication.class,第二个args
(4)编写程序的控制项
这个控制项就相当于MVC中的C.例如我在浏览器中进入本地服务器,然后输入/ welcome / greet,然后程序执行相关的操作并且最后显示在页面,这就相当于一个控制器的过程.a
,在src / main / java包 里创建一个新的包,注意:该包必须包含在入口类所在的包内,否则无法运行成功可以为:。com.application.controller,在该包里面创建一个控制器类,创建一个方法,如helloOne方法,该方法是用来执行映入眼帘的操作。
B,现在控制类基本的作用方法已经完成,但是程序暂时还是无法知道如何来调用这个类的这个方法,因此需要通过注解来让弹簧知道什么时候调用这个类的这个方法。首先在该类的上方定义@RestController,这个注解表示该类是一个控制类,可以通过路径来执行这个类的某个方法,在在@RestController注解下面添加@RequestMapping注解,该注解的值表示当输入什么时匹配到此类,匹配到此类了还不够,因为需要匹配到类的具体方法执行具体的操作,因此还需要在方法上面添加@RequestMapping注解,同样,该属性的值就是匹配的值。注意,在使用 @RestController注解相当于 @Controller+ @ResponseBoby。即使用了 @RestController修饰一个类时,具体方法映射就不需要 @ResponseBoby。使用 @Controller修饰一个类时需要 @ResponseBoby 修饰方法映射。
例如在类上面的RequestMapping注解的属性中添加/问候,在方法的注解属性中添加一个,然后执行Tomcat的,在后面输入/问候/一个回车,就可以显示该方法执行的结果。
当然在入口类里面设置这些依然可以进行操作,但是必须在方法上面添加@应答 鲍伯有注解,而控制器类里面的方法可以不需要该注解不过一般将操作方法放在控制器里更规范。
代码示例:
入口类:
package com.application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication
@RequestMapping("/welcome")
public class testApplication {
@RequestMapping("friend")
@ResponseBody
String helloWorld()
{
return "Welcome!";
}
@RequestMapping("boy")
@ResponseBody
public String helloBoy()
{
return "Welcome boy!";
}
public static void main(String []args)
{
SpringApplication.run(testApplication.class, args);
}
}
package com.application.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/greeting")
public class controller {
@RequestMapping("mapping")
//@ResponseBody
public String helloWorld(String userName)
{
return "Welcome"+userName;
}
@RequestMapping("one")
//@ResponseBody
public String helloOne()
{
return "number one";
}
}