一、搭建Springboot
1、环境要求:JDK1.8、eclipse(建议氧气版及以上)
2、访问https://start.spring.io/
3、我们会在该网站中创建一个Springboot的项目,相关设置参数如下
(1)project 选maven project
(2)language 选java
(3)springboot版本默认会给你选中,不用管
(4)project metadata的相关设置
a、group 写你的公司名
b、artifact 用默认的名字
c、其余默认

(5)dependencies 在后头的文本框写入web,选第一个

4、点击generate project,生成压缩包,解压后导入eclipse
5、在application.properties中写入
server.port=8081
6、创建一个controller
package com.neusoft.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//RestController=ResponseBody+Controller
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
}
7、执行DemoApplication.java文件
8、在浏览器地址栏写入http://localhost:8081/hello

二、pom.xml文件的配置信息
1、parent标签,我们觉得使用springboot要比创建spring项目容易,原因是springboot的许多信息都是由spring-boot-starter-parent这个父级工程配置了
这个父级工程还有以下配置:
默认使用java8
使用utf-8编码
默认的version信息
识别资源过滤
插件配置
识别application.properties文件
maven默认把占位符由${...}改成了@..@
2、dependency标签中spring-boot-starter-web负责web工程、spring-boot-starter-test负责项目的启动
三、Springboot与MVC结合
利用Springboot与其他技术结合,需要在pom文件中添加依赖
1、配置热部署,此举是为了版本号改动自动重启项目
<!-- 热部署模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
2、springboot自带的tomcat是不能运行jsp的,因此需要更新版本
<!-- jsp支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
3、创建路径
右键buildpath->add folder->create new folder,写入folder name是src/main/webapp
4、在src/main/webapp中写入hello.jsp
5、访问http://localhost:8081/hello.jsp

6、如果按照以上的方式,该页面可能不会安全,因此可以把jsp放进安全的WEB-INF文件夹下
更改application.properties,增加以下语句
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
7、在webapp下新建WEB-INF,在WEB-INF下新建jsp文件夹,把hello.jsp移入jsp文件夹下
8、由于走视图,@RestController返回的是json,因此新创建JspController
package com.neusoft.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class JspController {
@RequestMapping("/gojsp")
public String goJsp() {
return "hello";
}
}
四、配置静态资源
1、第一种方式:自动配置静态资源
src/main/resources/static是一个存储静态资源的位置
把jquery的文件放到src/main/resource/static/js/下。
jsp页面修改代码为
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.11.2.min.js"></script>
<script type="text/javascript">
$(function(){
alert("哈哈哈");
});
</script>
</head>
<body>
hello java
</body>
</html>
2、刚才我们把静态资源都放进了static文件夹下,但是很多时候我们都想把静态资源放入webapp中
需要手动配置,修改application.properties配置文件
spring.mvc.static-path-pattern=/js/**
spring.resources.static-locations=/js/
然后在webapp下创建folder,把js文件放入该文件夹中
3、使用#把配置文件中的配置信息注释

创建JAVA文件如下
package com.neusoft.demo.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// TODO Auto-generated method stub
registry.addResourceHandler("/js/**").addResourceLocations("/js/");
}
}
五、与json搭配
1、返回json字符串
创建JAVA文件
package com.neusoft.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class JsonController {
@RequestMapping("/goStr")
public String goStr() {
return "success";
}
}
2、返回json对象
修改JsonController内容为
package com.neusoft.demo.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.neusoft.demo.domain.User;
@RestController
public class JsonController {
@RequestMapping("/goStr")
public String goStr() {
return "success";
}
@RequestMapping("/goUser")
public User goUser() {
User user = new User();
user.setId("123");
user.setName("hhh");
return user;
}
@RequestMapping("/findAll")
public List<User> findAll(){
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setId("001");
user1.setName("张四");
User user2 = new User();
user2.setId("002");
user2.setName("张五");
list.add(user1);
list.add(user2);
return list;
}
@RequestMapping("/findMap")
public Map findMap() {
Map m = new HashMap();
m.put("id", "123");
m.put("name", "张四");
return m;
}
}
2、创建User的JAVA文件
package com.neusoft.demo.domain;
public class User {
private String id;
private String name;
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;
}
}
3、返回json数组
@RequestMapping("/findAll")
public List<User> findAll(){
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setId("001");
user1.setName("张四");
User user2 = new User();
user2.setId("002");
user2.setName("张五");
list.add(user1);
list.add(user2);
return list;
}
4、返回Map集合
@RequestMapping("/findMap")
public Map findMap() {
Map m = new HashMap();
m.put("id", "123");
m.put("name", "张四");
return m;
}
六、springboot核心配置
1、
#设置上下文路径
server.servlet.context-path=/haha
项目路径就改成了haha
2、
#设置日志级别,开发阶段用debug,上线用info,如果上线后仍然用debug,会造成内存很满
logging.level.org.springframework=DEBUG
用debug会打印出更详细的信息
3、
#激活相应的配置,springboot项目可以有多个配置文件,比如开发期的配置文件用dev,生产用的配置文件用prop
spring.profiles.active=dev
在src/main/resources下建application-dev.properties,以及application-prop.properties,在application-dev.properties文件中写入如下代码
server.port=8082
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
#spring.mvc.static-path-pattern=/js/**
#spring.resources.static-locations=/js/
server.servlet.context-path=/hehe
端口号改成8082,项目路径设为hehe,因此访问路径就需要更改成http://localhost:8082/hehe/findMap
网友评论