文档章节

教你十分钟快速搭建springBoot项目实战

小柒2012
 小柒2012
发布于 2017/08/03 12:52
字数 1104
阅读 59
收藏 3

首先申明,本文并没有原理性的东西(请自行百度),适合于刚接触springBoot并有一定javaweb开发基础的人群,大神和小白请出门左拐。

##使用工具 Eclipse、Maven、springBoot 本文不会讲解Maven的安装使用以及Eclipse下如何创建一个Maven项目

##实现功能 ###springBoot项目项目结构

123.png

pom.xml 文件:

<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.itstyle</groupId>
  <artifactId>springBoot_demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>springBoot_demo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
   <!-- spring-boot-starter-parent包含了大量配置好的依赖管理,在自己项目添加这些依赖的时候不需要写<version>版本号 -->
  <parent>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-parent</artifactId>
	    <version>1.5.2.RELEASE</version>
	    <relativePath/>
  </parent>
  <dependencies>
        <!-- 实现web功能 -->
		<dependency>
	      <groupId>org.springframework.boot</groupId>
	      <artifactId>spring-boot-starter-web</artifactId>
	    </dependency>
	    <!-- 模版 -->
	    <dependency>
	      <groupId>org.springframework.boot</groupId>
	      <artifactId>spring-boot-starter-thymeleaf</artifactId>
	    </dependency>
	    <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
  </dependencies>
  <build>
		<plugins>
		    <!-- 打包项目 mvn clean package -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<dependencies>
				    <!-- mvn spring-boot:run 热部署启动 -->
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.4.0.RELEASE</version>
                    </dependency>
                </dependencies>
			</plugin>
		</plugins>
	</build>
</project>

###如何启动项目以及配置项目启动端口以及日志级别

#服务端口
server.port=8080
#spring boot从控制台打印出来的日志级别只有ERROR, WARN 还有INFO,如果你想要打印debug级别的日志
#debug=true
logging.level.root=INFO
#logging.level.org.springframework.web=DEBUG
#logging.level.org.hibernate=ERROR

#thymeleaf start
#spring.thymeleaf.prefix: /templates/    
#spring.thymeleaf.suffix: .html 
#spring.thymeleaf.mode=HTML5
#spring.thymeleaf.encoding=UTF-8
#spring.thymeleaf.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
#spring.thymeleaf.cache=false

###启动springBoot项目并展示一个页面,对应的是templates下index.html页面。

/**
 * 其实我是个演员
 * 小柒
 */
@SpringBootApplication
@Controller
public class App {
	private static final Logger logger = Logger.getLogger(App.class);

	@RequestMapping("/")
    public String   greeting() {
        return "index";
    }
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
		logger.info("项目启动 ");
	}
}

###整合thymeleaf模版实现一个简单的页面,对应的是templates下hello.html页面。

@Controller
public class HelloController {
	@RequestMapping("/hello")
    public String   greeting(ModelMap map) {
		map.addAttribute("name", "其实我是个演员");
		map.addAttribute("host", "https://blog.52itstyle.com");
        return "hello";
    }
}

###如何统一配置404和500页面

@Controller  
public class ErrorInterceptor implements HandlerInterceptor {  
  
    /**  
     * preHandle方法是进行处理器拦截用的,顾名思义,该方法将在Controller处理之前进行调用,SpringMVC中的Interceptor拦截器是链式的,可以同时存在  
     * 多个Interceptor,然后SpringMVC会根据声明的前后顺序一个接一个的执行,而且所有的Interceptor中的preHandle方法都会在  
     * Controller方法调用之前调用。SpringMVC的这种Interceptor链式结构也是可以进行中断的,这种中断方式是令preHandle的返  
     * 回值为false,当preHandle的返回值为false的时候整个请求就结束了。  
     */    
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)  
            throws Exception {  
        return true;// 只有返回true才会继续向下执行,返回false取消当前请求  
    }  
  
    /**  
     * 这个方法只会在当前这个Interceptor的preHandle方法返回值为true的时候才会执行。postHandle是进行处理器拦截用的,它的执行时间是在处理器进行处理之  
     * 后,也就是在Controller的方法调用之后执行,但是它会在DispatcherServlet进行视图的渲染之前执行,也就是说在这个方法中你可以对ModelAndView进行操  
     * 作。这个方法的链式结构跟正常访问的方向是相反的,也就是说先声明的Interceptor拦截器该方法反而会后调用,这跟Struts2里面的拦截器的执行过程有点像,  
     * 只是Struts2里面的intercept方法中要手动的调用ActionInvocation的invoke方法,Struts2中调用ActionInvocation的invoke方法就是调用下一个Interceptor  
     * 或者是调用action,然后要在Interceptor之前调用的内容都写在调用invoke之前,要在Interceptor之后调用的内容都写在调用invoke方法之后。  
     */    
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,  
                           ModelAndView modelAndView) throws Exception {  
        if(response.getStatus()==500){  
            modelAndView.setViewName("/errorpage/500");  
        }else if(response.getStatus()==404){  
            modelAndView.setViewName("/errorpage/404");  
        }  
    }  
  
    /**  
     * 该方法也是需要当前对应的Interceptor的preHandle方法的返回值为true时才会执行。该方法将在整个请求完成之后,也就是DispatcherServlet渲染了视图执行,  
     * 这个方法的主要作用是用于清理资源的,当然这个方法也只能在当前这个Interceptor的preHandle方法的返回值为true时才会执行。  
     */    
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)  
            throws Exception {  
    }  
}  

###最终项目演示 345.png

##码云 https://git.oschina.net/52itstyle/springboot_demo

© 著作权归作者所有

小柒2012
粉丝 121
博文 29
码字总数 31448
作品 0
青岛
程序员
私信 提问
教你十分钟构建好 SpringBoot + SSM 框架

目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐。而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了大众的青睐 而本...

全部原谅
2018/07/30
23
0
SpringBoot基础教程1.1.1 项目搭建

概述 为微服务而生,大大简化搭建工程的时间;个人理解,是一些框架的集合, 整合各个框架,降低使用门槛。 1.1. 特色 介绍项目的同时,推荐相关快捷键,熟能生巧,无需死记硬背。 2. 本节重...

Mkeeper
2018/07/02
116
0
10分钟入门SpringBoot

SpringBoot是基于spring框架衍生的一种新的微服务框架,如果对Spring有一定了解的同学肯定知道在Spring中需要配置各种xml文件完成bean的注册操作,随着服务越来越多,配置就变得越来越复杂,...

jwfy
2018/06/14
0
0
SpringBoot实战(五)之Thymeleaf

Thymeleaf同jsp、volocity、freemarker等共同的职能是MVC模式中的视图展示层,即View。 当然了,SpringBoot中也可以用jsp,不过不推荐这种用法,比较推崇的就是使用Thymeleaf。 关于Thymeleaf...

youcongtech
2018/08/03
0
0
SpringBoot介绍及常用的搭建方式

SpringBoot简介 Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。它使用习惯优于配置的理念让你的项目快速运行起来,使用Spring Boot很容易创建一个独...

Hans的博客
01/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面向对象编程

1、类和对象 类是对象的蓝图和模板,而对象是实例;即对象是具体的实例,类是一个抽象的模板 当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定...

huijue
今天
9
0
redis异常解决 :idea启动本地redis出现 jedis.exceptions.JedisDataException: NOAUTH Authentication required

第一次安装在本地redis服务,试试跑项目,结果却出现nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required错误,真是让人头疼 先检查一...

青慕
今天
20
0
Spring 之 IoC 源码分析 (基于注解方式)

一、 IoC 理论 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 二、IoC方式 Spring为IoC提供了2种方式,一种是基于xml...

星爵22
今天
28
0
Docker安装PostgresSql

Docker安装PostgresSql 拉取docker镜像 # docker pull postgres:10.1010.10: Pulling from library/postgres9fc222b64b0a: Pull complete 38296355136d: Pull complete 2809e135bbdb: Pu......

Tree
今天
12
0
内容垂直居中

方法一: 采用上下 padding 形式,将内容放置在垂直居中 .line { padding: 2% 0; text-align: center; height: 5px;} <div class="line"> 内容垂直居中</div> 方法二: 采......

低至一折起
今天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部