这两天学习了springboot些框架开发,发现用它开发真的是简单便捷。就像是它的设计初衷所描述的那样,它虽然没有提出任何新的技术,但却将之前的spring技术集成了,他让spring变得更加好用。
于是将最近的学习内容总结一下,分享给大家。如有问题,敬请指教~
创建一个SpringBoot项目
tips:博主使用的开发环境是eclipse
我们使用maven来管理springboot项目,这样方便配置相关依赖(不用手动拷贝jar包真不戳)。
首先,创建一个maven项目:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201024105713827.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
先简单创建一个项目,不用其他原型:
![在这里插入图片描述](https://img-blog.csdnimg.cn/202010241104044.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
填写项目坐标及父项目坐标。
这里我们要使用的是springBoot进行开发,所以父项目选择springBoot启动器项目。
当然这里也可以选择不进行父项目的配置,在生成项目后,仍可以在配置文件中配置父项目坐标。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201024111009934.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
于是我们就得到了一个maven项目:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201024113544231.png#pic_center)
打开pom.xml,可以看到项目的一些配置:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201024114044337.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
pom文件的全程是“project object model”也就是“项目对象模型”,是maven工程的灵魂。里面存放着项目坐标,父项目坐标,项目依赖等。
parent
标签配置的就是父项目的坐标信息,这是在创建项目时填写的那个。
当然,如果再创建项目时没有填写父项目,也可以在创建项目后在这个文件中添加上父项目的配置
接着,项目需要springBoot启动器的支持,所以我们还需要配置一下springboot启动器的依赖,写法如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020102411445657.png#pic_center)
这个dependies
标签包住的是所有项目会用到的依赖。以往这些依赖的jar包需要拷贝到项目下,现在maven会自动的去坐标处下载。
OK,到此一个springBoot的项目就创建完毕了!是不是很简单呢?
下面我们就让这个项目跑起来,并使用浏览器访问它。
让项目跑起来
让项目跑起来首先我们需要一个Controller,一会可以在前端进行访问,现在就先来创建一个controller:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("test")
public class TestContrller {
@RequestMapping("hello.action")
public String hello() {
return "hello spring boot!!!";
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025170211573.png#pic_center)
注:@RestController
注解可以初步的理解为@ResponseBody
和@Contorller
整合体,可以使得该类下的所有controller方法返回值转化成为json。
接着,我们编写springboot的启动入口。说到这里,springboot的优势之处就体现出来了,它集成了tomcat,不需要我们像传统的ssm框架那样将程序打成war包部署在tomcat中。而是直接像编写一个普通的java程序那样,提供一个主方法,并在其中调用特定的启动类启动程序即可。
下面我们就来实现主方法:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
将这个带有主方法的启动类放置在controller等组件的父包下,以保证能够扫描到所有的组件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025181927164.png#pic_center)
编写启动类的关键步骤在于:
- 给启动类打上
SpringBootApplication
注解,表明其是一个springBoot应用
- 在主方法中调用SpringApplication类的run方法,并将启动类对象和运行参数穿进去
至于类名,到时没有什么强制性的要求,可以写成其他的名称,但是推荐使用Application。
然后运行这个程序,看到控制台如下输出:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025182629413.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
服务端就成功启动了!!
是不是很方便呢?
下面,我们在浏览器访问一下刚才的controller,内部集成的tomcat端口号默认为8080:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025182821246.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
nice!!!
配置文件
除了pom作为项目的核心配置文件决定了工程的模型,项目中还有一些配置是以参数的形式呈现的,例如端口号,数据库的链接信息等,他们的数值配置并不属于pom,但他们同样重要。
这些参数的配置都要被放在一个叫做application.properties
的配置文件中。这个文件在工程创建时并没有,需要我们手动创建在src/main/resources
下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025184419205.png#pic_center)
下面我们就将端口号配置成80端口,再次访问时就不需要写端口号了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025184850582.png#pic_center)
再次启动项目,访问localhost/test/hello.action
:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025184952930.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
nice!!!
静态资源的存放
对静态资源访问的响应也是服务端的功能之一。说白点,就是服务端要能存储一定的静态资源,再说白点,就是想html,css,js等代码能够存放到项目中并能够被访问到。
那么存放这些资源的地方有两个:
- 一个是src/main/resources下的static文件夹中
- 另一个是src/main下的webapp文件夹中
这两个目录下存放的静态资源都可以被访问到。
例如,将两个html的测试文件test1.html和test2.html文件分别放置到两个路径下
<!-- 测试文件1 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试文件1</title>
</head>
<body>
<div>
<p style="color:#ff0000;font-size:30px">测试文件1,存放在"src/main/resources/static"下</p>
</div>
</body>
</html>
<!-- 测试文件2-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试文件2</title>
</head>
<body>
<div>
<p style="color:#ff0000;font-size:30px">测试文件2,存放在"src/main/webapp"下</p>
</div>
</body>
</html>
运行程序,使用浏览器访问一下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025190731402.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020102519070554.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dheW5lX2xlZV9sd2M=,size_16,color_FFFFFF,t_70#pic_center)
ok,到此一个非常简陋的服务端就能跑起来了,总体来说是非常便捷的,省去了很多原来使用spring的配置和服务器部署缓解。
后面的文章,我们进一步讨论的使用springBoot集成mybatis来连接数据库以及项目部署的问题。敬请期待呀。
记得给博主一键三连哦,你的支持是我最大的动力!!!