Spring Boot基于Maven的项目环境搭建
1、简介
SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
2、特性
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
3、重要策略
Spring Boot两个非常重要的策略开箱即用和约定优于配置
3.1 开箱即用,Outofbox
是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。
3.2 约定优于配置,Convention over configuration
是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。
4、SpringBoot应用系统开发模板的基本架构设计从前端到后台进行说明
前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它们都是用Java语言编写的,渲染模板并输出相应文本,使得界面的设计与应用的逻辑分离,同时前端开发还会使用到Bootstrap、AngularJS、JQuery等;在浏览器的数据传输格式上采用Json,非xml,同时提供RESTfulAPI;SpringMVC框架用于数据到达服务器后处理请求;到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MYSQL;开发工具推荐IntelliJIDEA。
PS:引用百度百科,Spring Boot简介详见官网和百度百科
https://baike.baidu.com/item/Spring%20Boot/20249767?fr=aladdin
1、Intellij IDEA 15.0.2
2、Maven 3
3、Spring boot 2.1.8
1、打开idea,创建一个maven项目
2、设置Name、Group、 Artifact和package包名称
3、选择Spring Boot 版本,勾选Spring Web
4、设置Project name项目名称和Module name模块名称
到这里我们已经把Spring Boot maven项目已经创建完成了,接下来我们开始测试Hello Word
5、创建完之后的项目目录结构配置
pom.xml配置
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.8.RELEASE
com.example.boot
spring-boot-demo
0.0.1-SNAPSHOT
spring-boot-demo
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
6、Hello Word 代码配置
package com.example.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by lidongwen on 2019/9/10.
*/
@RestController
public class HelloWord {
@ResponseBody
@RequestMapping("/home")
String home() {
return "spring boot so easy!";
}
}
7、启动Spring Boot
8、在浏览器中访问
http://127.0.0.1:8080/home
9、下面我们简单介绍下配置信息
默认的配置信息都在application.properties中,如果新建项目没有这个文件可以自己建个application.properties文件放在classpath中,我们可以在配置文件中配置端口、项目环境名等等
9.1 配置项目端口
Spring Boot默认启动端口是8080,我们可以改成88,配置如下:
#tomcat port
server.port=88
改成上面的配置信息后,我们的访问地址就变成了http://127.0.0.1:88/home
上面的是项目环境搭建,接下来我们说个简单的示例,以Fruits 水果为例
1、类目录结构
2、FruitsController.java
package com.example.boot.controller;
import com.example.boot.domain.Fruits;
import com.example.boot.service.FruitsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by lidongwen on 2019/9/11.
*/
@RestController
public class FruitsController {
@Autowired
private FruitsService fruitsService;
/**
* 获取苹果信息
* @return
*/
@RequestMapping(name = "/queryFruits")
public Object queryStudent(){
Fruits student = fruitsService.queryFruits();
return student;
}
}
3、接口 FruitsService.java
package com.example.boot.service;
import com.example.boot.domain.Fruits;
/**
* Created by lidongwen on 2019/9/11.
*/
public interface FruitsService {
Fruits queryFruits();
}
4、FruitsServiceImpl.java
package com.example.boot.service.impl;
import com.example.boot.domain.Fruits;
import com.example.boot.service.FruitsService;
import org.springframework.stereotype.Service;
/**
* Created by lidongwen on 2019/9/11.
*/
@Service("studentService")
public class FruitsServiceImpl implements FruitsService {
@Override
public Fruits queryFruits() {
return new Fruits("1001", "apple", "I'm a red apple.");
}
}
5、Fruits.java
package com.example.boot.domain;
/**
* Created by lidongwen on 2019/9/11.
*/
public class Fruits {
private String id;
private String name;
private String desc;
public Fruits(String id, String name, String desc) {
super();
this.id = id;
this.name = name;
this.desc = desc;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
6、启动Spring Boot项目,在浏览器中访问