springboot自定义配置开发项目

目录

1、使用自定义配置

2、开发自己的Spring Boot项目


1、使用自定义配置

上节讨论了Spring Boot存在自动装配组件和自定义的配置,这些它都给予了开发者默认的约定配置项,这些配置项多达300多项,所以十分繁复,好在我们并不需要全部去配置,只是根据自己工程的需要引入对应的starter,对其进行必要的配置就可以了。这里没必要流水账那样罗列这些配置项,因为这些很无趣也没有必要,而只是根据讲解的需要,引入对应的stater,才会讨论对应的配置项。

将来在讨论数据库、NoSQL等内容时,才会讨论对应的配置项。这里需要我们记住的是通过这些约定的配置就可以在很大程度上自定义开发环境,以适应真实需求。这就是Spring Boot的理念,配置尽量简单并且存在约定,屏蔽Spring内部的细节,使得Spring能够开箱后经过简单的配置后即可让开发者使用,以满足快速开发、部署和测试的需要。

如果你按照上述使用Eclipse或者IntelliJ IDEA进行新建工程,那么可以在项目中发现它还会为你创建一个属性文件application.properties,如图所示。它是一个默认的配置文件,通过它可以根据自己的需要实现自定义。

例如,假设当前8080端口已经被占用,我们希望使用8090端口启动Tomcat,那么只需要在这个文件中添加一行:

server.port=9091

 这样以Java Application的形式运行Course1Application就可以看到Spring Boot绑定的Tomcat的启动日志:

注意,通过加粗的这行日志可以看到Tomcat是以8090端口启动的,相信读者明白了。也就是说,我们只需要修改配置文件,就能将开发的默认配置变为自定义配置。事实上,Spring Boot的参数配置除了使用properties文件之外,还可以使用yml文件等,它会以下列的优先级顺序进行加载:

•命令行参数;

•来自java:comp/env的JNDI属性;

•Java系统属性(System.getProperties());

•操作系统环境变量;

•RandomValuePropertySource配置的random.*属性值;

•jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件;

•jar包内部的application-{profile}.properties或application.ym(带spring.profile)配置文件;

•jar包外部的application.properties或application.yml(不带spring.profile)配置文件;

•@Configuration注解类上的@PropertySource;

•通过SpringApplication.setDefaultProperties指定的默认属性。

实际上,yml文件的配置与properties文件只是简写和缩进的差别,因此差异并不大,统一使用properties文件进行配置。对于需要使用yml文件的读者,只是需要稍加改动即可。

2、开发自己的Spring Boot项目

上面我们修改了服务器的启动端口,有时候还需要修改Spring MVC的视图解析器(ViewResolver)。

Spring MVC的视图解析器的作用主要是定位视图,也就是当控制器只是返回一个逻辑名称的时候,是没有办法直接对应找到视图的,这就需要视图解析器进行解析了。

在实际的开发中最常用的视图之一就是JSP,例如,现在控制器中返回一个字符串“index”,那么我们希望它对应的是开发项目的/WEB-INF/jsp/index.jsp文件。如果你还对Spring MVC不熟悉,那也没有关系,未来我们还会谈到它,这里的代码很简单,你只需要依葫芦画瓢就可以体验运行Spring Boot项目了。

下面的主要任务就是如果通过Spring Boot完成这个功能。首先我们需要在Maven的pom.xml中加入JSP和JSTL的依赖包,如代码清单

代码清单:新增JSP和JSTL的Maven依赖配置

		<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
		<dependency>
		    <groupId>org.apache.tomcat.embed</groupId>
		    <artifactId>tomcat-embed-jasper</artifactId>
		    <version>10.0.22</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jstl</artifactId>
		    <version>1.2</version>
		</dependency>

 为了配置视图解析器(ViewResolver),将application.properties文件修改为如代码清单所示。

代码清单:定义视图前后缀

server.port=9091
spring.mvc.view.prefix=/WEB-INF/jsp
spring.mvc.view.suffix=.jsp

这里的spring.mvc.view.prefix和spring.mvc.view.suffix是Spring Boot与我们约定的视图前缀和后缀配置,意思是找到文件夹/WEB-INF/jsp/下以.jsp为后缀的JSP文件,那么前缀和后缀之间显然又缺了一个文件名称,在Spring MVC机制中,这个名称则是由控制器(Controller)给出的,为此新建一个控制器IndexController,其代码如代码清单所示。

代码清单:开发控制器

package com.springboot.course1.main;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {

	@RequestMapping("/index")
	public String index() {
		return "index";
	}
}

这里定义了一个映射为/index的路径,然后方法返回了“index”,这样它就与之前配置的前缀和后缀结合起来找对应的jsp文件,为此我们还需要开发一个对应的jsp文件,为此我们先再建一个/webapp/WEB-INF/jsp/index.jsp文件,如代码清单所示。

代码清单:开发视图(/webapp/WEB-INF/jsp/index.jsp)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>springboot 视图解析器</title>
</head>
<body>
	<h1>测试 视图解析器</h1>
</body>
</html>

这样我们就完成了一个简单的控制器,并且让视图解析器找到视图的功能。从上面来看定义视图解析器,在Spring Boot中只需要通过配置文件定义视图解析器的前后缀即可,而无须任何代码,这是因为Spring Boot给了我们自定义配置项,它会读入这些自定义的配置项,为我们生成Spring MVC中的视图解析器。正如它所承诺的尽可能地配置Spring开发环境,然后再看到即将运行Course1Application.java文件,如代码清单所示。

代码清单:Course1Application.java

package com.springboot.course1.main;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Course1Application {

	public static void main(String[] args) {
		SpringApplication.run(Course1Application.class, args);
	}

}

 这里的注解@SpringBootApplication标志着这是一个Spring Boot入门文件。加粗的代码则是以Course1Application类作为配置类来运行Spring Boot项目,于是Spring Boot就会根据你在Maven加载的依赖来完成运行了。接下来我们以Java Application的形式运行类Course1Application,就可以看到Tomcat的运行日志。由于已经把端口修改为了9091,因此打开浏览器后输入http://localhost:9091/index,就可以看到运行的结果如图所示。

这样我们就搭建完成Spring Boot的开发环境了。因为Spring Boot是基于Spring原理基础之上的,所以在讨论Spring Boot时,也十分有必要介绍Spring的技术原理,这样才能知其然,亦知其所以然。这些会在后续章节进行介绍。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值