spring boot 简化开发:把平时开发者最常用的到一些步骤,按照开发者的习惯,把能包装的就包装成一些固有的工具类(就比如我们之前连接数据库时常写的DB工具类)。当然,是在原有的spring框架的基础之上。嗯,就是没有什么新的技术,不用理解,会用就好,相当于一个工具。
spring boot+IDE(java开发工具)+JDK+maven 使用这几个东西就可以很轻松的构建一个web项目。不像之前,还要各种找对应版本的jar包,不用学习“web项目部署在Tomcat的n多种方法”,不用继承其他框架,不用写看不懂记不住的xml文件,等等。
spring boot一般使用maven来构建项目(如果不会maven,从网上找一些相关的demo,从demo1到demo10 新建10个maven项目,实现一些web请求、数据库连接等简单功能就会了),默认将web应用打成jar包。(本人多记一个:groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。groupId一般分为多个段,第一段为域,第二段为公司名称,其他按自己需要分类自行处理。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。artifactId:自己的项目名称。)
案例如下:
1、先建立一个简单的maven项目,嗯,什么都没有的那种。。
2、添加springboot依赖:
(1)定义springboot版本(对,springboot也是在不停的进化中。。)
(2)因为想要一个web项目,所以,也要加一个web包。这个包添加了就可以拥有web项目的访问功能等。
3、这个项目怎么启动呢?执行一个主类中的main方法,嗯,不用部署在Tomcat下,因为上面添加的那个“web”包默认集成着Tomcat。。
具体代码如下:
下面这个是pom文件的,<parent>中定义着springboot版本(parent,父母,没问题,用springboot就要有这个),spring-boot-starter-web就是定义web项目的包(突然想看到它集成的Tomcat有木有版本,在maven仓库中,找\org\springframework\boot\spring-boot-starter-tomcat,嗯,果然也是有版本的)
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demioct</groupId>
<artifactId>springbootdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.12.RELEASE</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
然后是添加项目启动类,对,整个项目除了pom文件,就它最重要(解释一下,注解@SpringBootApplication,为什么说这个类是项目启动类,就是因为有它,整个项目中只有一个类有这个注解,其它都不用这个注解,然后在main方法中,加上SpringApplication.run方法,这个方法、这个类就是整个项目的启动入口)。
package com.demioct; 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请求测试一下(注意一下,项目启动类默认与项目中的所有类同级,或者启动类高于其他类,就像下面图片显示的那样。如果有一个com.demioct111.HelloController.java,项目是扫描不到这里的,写n多个请求,那都是n多个404):
package com.demioct.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello demioct";
}
}
最后打开浏览器,http://localhost:8080/hello,完成了(悄悄计算了一下刚才的时间,完成上述任务的时间,没有超过两分钟,嘿)