美文网首页
Springboot

Springboot

作者: RobertLiu123 | 来源:发表于2019-04-09 18:59 被阅读0次

一、搭建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、其余默认

image.png

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


image.png

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

image.png

二、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

image.png

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、使用#把配置文件中的配置信息注释


image.png

创建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

相关文章

网友评论

      本文标题:Springboot

      本文链接:https://www.haomeiwen.com/subject/mmkqiqtx.html