3. Spring Boot深入学习

3.1. 读取配置文件

3.1.1. .读取核心配置文件

在工程的src/main/resources 下修改核心配置文件

application.properties, 添加内容如下

name=张三

url=http://www.zengxiaoting.cn

在Controller中添加:

@Resource

private Environment env;

@RequestMapping("list")

public List<User> queryUserAll() {

  System.out.println(env.getProperty("name"));

  System.out.println(env.getProperty("url"));

  List<User> list = this.userService.findAll();

  return list;

}

就可以直接把配置文件信息打印出来。

注意包名是:org.springframework.core.env.Environment

3.1.2. 读取自定义文件

在工程的src/main/resources 下构建自定义配置文件mail.properties, 内容如下

mail.host=ftp.miao.com

mail.port=25

mail.username=zengxiaoting

mail.password=123456

编写JavaBean

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Configuration;

@Configuration

@ConfigurationProperties(locations = "classpath:mail.properties", prefix = "mail")

public class MailProperties {

private String host;

private Integer port;

private String username; 

private String password;

set/get。。。

}

改造Controller

@Autowired

private MailProperties mailProperties; 

@RequestMapping("/mailInfo")

public String mailInfo() {

  return mailProperties.getHost() + "<br>" + mailProperties.getPort() + "<br>" + mailProperties.getUsername()

  + "<br>" + mailProperties.getPassword();

}

3.2. 打jar包

在工程的pom.xml中添加以下依赖

<build>

  <plugins>

    <plugin>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-maven-plugin</artifactId>

    </plugin>

  </plugins>

</build>

我们目前的工程采用的是jar 的打包方式,所以我们在执行package 命令后,会产生一个jar 包。

我们进入到这个目录用压缩软件打开此jar 包,其中我们发现了一个叫lib 的文件夹,打开lib 文件夹发现此文件夹下全是工程依赖的jar包,甚至还有tomcat。

这种包含有jar 包的jar包,我们称之为fatJAR( 胖jar 包),由于fatJAR 本身就包括tomcat , 我们就不需要另外部署了,直接在命令行就可以把我们的应用

启动起来,在命令行,进入到jar 包所在的目录,我们可以通过以下java –jar命令来执行此jar 包。

3.3. 打war包

spring-boot 默认提供内嵌的tomcat,所以打包直接生成jar 包,用java

-jar 命令就可以启动。但是,有时候我们更希望一个tomcat 来管理多个项目,

这种情况下就需要项目是war 格式的包而不是jar 格式的包。

我们按照以下步骤完成对工程的改造

(1)修改pom.xml

将打包方式修改为war

<packaging>war</packaging>

添加依赖

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-tomcat</artifactId>

  <scope>provided</scope>

</dependency>

spring-boot-starter-tomcat 是原来被传递过来的依赖,默认会打到包里,所

以我们再次引入此依赖,并指定依赖范围为provided,这样tomcat 相关的jar

就不会打包到war 里了.

(2)添加ServletInitializer

import org.springframework.boot.builder.SpringApplicationBuilder;

import

org.springframework.boot.context.web.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

  @Override

  protected SpringApplicationBuilder configure(SpringApplicationBuilderapplication) {

    return application.sources(Application.class);

  }

}

(3)运行package 打包命令生成war 包

生成后将war 包放入tomcat的webapp目录下,在bin目录下启动tomcat,测试完成的功能是否可以使用。

3.4. 附录

https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/

猜你喜欢

转载自www.cnblogs.com/jingchen/p/10178012.html