spring boot 基础 2018年5月3日

主包下运行类@SpringBootApplication  此注解是核心注解,源码如下

@Target({ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

@SpringBootConfiguration

@EnableAutoConfiguration @ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class} )} ) public @interface SpringBootApplication{ }

2:修改banner:http://www.cnblogs.com/whthomas/p/5268743.html

3:spring Boot的配置文件, 全局的配置文件application.properties或者application.yml

修改访问路径:

默认端口是8080,我将之改为8081,默认访问路径是http://localhost:8080,将之改为http://localhost:8081/helloboot

server.context-path=/helloboot

server.port=8081

设置中文编码,直接在配置文件添加

专门设置中文,application.properties中添加如下代码:

server.tomcat.uri-encoding=UTF-8

spring.http.encoding.charset=UTF-8

spring.http.encoding.enabled=true

spring.http.encoding.force=true

spring.messages.encoding=UTF-8

然后再修改controller中的返回值,就能得到配置的属性值

简便方法为: 将properties属性和一个Bean关联在一起

  1. 创建属性的Bean.properties,然后直接输入    名字.属性

book.name=***

book.author=***

book.price=***

  • 创建Book Bean,并注入properties文件中的值

@Component         //

@ConfigurationProperties(prefix = "book",locations = "classpath:book.properties")        //prefix为前缀。locations为位置/

public class BookBean {

private String name;

private String author;

private String price;

//生成其get和set方法。

}

  • 在Controller中添加如下代码注入Bean:
  • @Autowired

    private BookBean bookBean;

  • 添加路径映射:
  • @RequestMapping("/book")

    public String book() {

    return "Hello Spring Boot! The BookName is "+bookBean.getName()+";and Book Author is "+bookBean.getAuthor()+";and Book price is "+bookBean.getPrice();

    }

日志的输出和配置,添加依赖

添加依赖

<dependency>

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

<artifactId>spring-boot-starter-log4j2</artifactId></dependency>

自定设置文件的的名称,直接值properties里面设置logging.config 选项即可:

日志的配置

在application.properties中添加如下代码

# 配置日志输出位置

logging.file=/home/sang/workspace/log.log

#配置日志级别。

logging.level.org.springframework.web=debug

启动热部署

在 pom.xml 文件中添加如下配置:

<!-- 热部署 --><dependency>

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

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional>

<scope>true</scope></dependency>

<build>

<plugins>

<plugin>

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

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

<configuration>

<!-- 没有该配置,devtools 不生效 -->

<fork>true</fork>

</configuration>

</plugin>

</plugins></build>

多环境配置profile。

在 src/main/resources 目录下创建三个配置文件,并在三个文件中配置不同的信息:

application-dev.properties:用于开发环境

application-test.properties:用于测试环境

application-prod.properties:用于生产环境

配置完不同的信息后,直接在 application.properties 中配置:

spring.profiles.active=dev

#dev为开发环境,同时可以将dev修改为其它的环境

其中,springProfile 标签的 name 属性对应 application.properties 中的 spring.profiles.active 的配置。

即 spring.profiles.active 的值可以看作是日志配置文件中对应的 springProfile 是否生效的开关。在 src/main/resources 下创建 logback-spring.xml 文件,内容如下

<?xml version="1.0" encoding="UTF-8"?><configuration>

<!-- 文件输出格式 -->

<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />

<!-- test文件路径 -->

<property name="TEST_FILE_PATH" value="d:/test.log" />

<!-- pro文件路径 -->

<property name="PRO_FILE_PATH" value="/opt/test/log" />

<!-- 开发环境 -->

<springProfile name="dev">

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

<encoder>

<pattern>${PATTERN}</pattern>

</encoder>

</appender>

<logger name="com.light.springboot" level="debug" />

<root level="info">

<appender-ref ref="CONSOLE" />

</root>

</springProfile>

<!-- 测试环境 -->

<springProfile name="test">

<!-- 每天产生一个文件 -->

<appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<!-- 文件路径 -->

<file>${TEST_FILE_PATH}</file>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!-- 文件名称 -->

<fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>

<!-- 文件最大保存历史数量 -->

<MaxHistory>100</MaxHistory>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<pattern>${PATTERN}</pattern>

</layout>

</appender>

<root level="info">

<appender-ref ref="TEST-FILE" />

</root>

</springProfile>

<!-- 生产环境 -->

<springProfile name="prod">

<appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<file>${PRO_FILE_PATH}</file>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>

<MaxHistory>100</MaxHistory>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<pattern>${PATTERN}</pattern>

</layout>

</appender>

<root level="warn">

<appender-ref ref="PROD_FILE" />

</root>

</springProfile></configuration>

日志输出有两种方式 (log4j以及logback,logback是官方推荐使用的)

  • 配置logback
  • 配置 log4j2

配置logback

spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy。

如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可。dmeo

#表示配置日志输出位置,

logging.file=/home/sang/workspace/log.log

#配置日志级别

logging.level.org.springframework.web=debug

在 src/main/resources 下创建 logback-spring.xml 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?><configuration>

<!-- 文件输出格式 -->

<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />

<!-- test文件路径 -->

<property name="TEST_FILE_PATH" value="d:/test.log" />

<!-- pro文件路径 -->

<property name="PRO_FILE_PATH" value="/opt/test/log" />

<!-- 开发环境 -->

<springProfile name="dev">

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

<encoder>

<pattern>${PATTERN}</pattern>

</encoder>

</appender>

<logger name="com.light.springboot" level="debug" />

<root level="info">

<appender-ref ref="CONSOLE" />

</root>

</springProfile>

<!-- 测试环境 -->

<springProfile name="test">

<!-- 每天产生一个文件 -->

<appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<!-- 文件路径 -->

<file>${TEST_FILE_PATH}</file>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!-- 文件名称 -->

<fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>

<!-- 文件最大保存历史数量 -->

<MaxHistory>100</MaxHistory>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<pattern>${PATTERN}</pattern>

</layout>

</appender>

<root level="info">

<appender-ref ref="TEST-FILE" />

</root>

</springProfile>

<!-- 生产环境 -->

<springProfile name="prod">

<appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<file>${PRO_FILE_PATH}</file>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>

<MaxHistory>100</MaxHistory>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<pattern>${PATTERN}</pattern>

</layout>

</appender>

<root level="warn">

<appender-ref ref="PROD_FILE" />

</root>

</springProfile></configuration>

springProfile 标签的 name 属性对应 application.properties 中的 spring.profiles.active 的配置。

其中启动对应的开发环境就是生效的相关的日志配置

  • 配置 log4j2

添加依赖

<dependency>

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

<artifactId>spring-boot-starter-log4j2</artifactId></dependency>

spring boot 默认会加载 classpath:log4j2.xml 或者 classpath:log4j2-spring.xml。

如果自定义文件名称,需在 application.properties 中配置 logging.config 选项即可。

log4j2.xml 文件内容如下:

<?xml version="1.0" encoding="utf-8"?><configuration>

<properties>

<!-- 文件输出格式 -->

<property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>

</properties>

<appenders>

<Console name="CONSOLE" target="system_out">

<PatternLayout pattern="${PATTERN}" />

</Console>

</appenders>

<loggers>

<logger name="com.light.springboot" level="debug" />

<root level="info">

<appenderref ref="CONSOLE" />

</root>

</loggers></configuration>

log4j2 不能像 logback 那样在一个文件中设置多个环境的配置数据,只能命名 3 个不同名的日志文件,分别在 开发,测试等环境中配置 logging.config 选项。

另外一种方案是直接在  application-*.properties 中设置,日志相关的配置:

logging.config # 日志配置文件路径,如 classpath:logback-spring.xml logging.exception-conversion-word

# 记录异常时使用的转换词 logging.file # 记录日志的文件名称,如:test.log logging.level.*

# 日志映射,如:logging.level.root=WARN,logging.level.org.springframework.web=DEBUG logging.path

# 记录日志的文件路径,如:d:/ logging.pattern.console

# 向控制台输出的日志格式,只支持默认的 logback 设置。 logging.pattern.file

# 向记录日志文件输出的日志格式,只支持默认的 logback 设置。 logging.pattern.level # 用于呈现日志级别的格式,只支持默认的 logback 设置。 logging.register-shutdown-hook# 初始化时为日志系统注册一个关闭钩子

 

项目的打包方式1:默认生成的jar包。 2:通过在运行主方法中重写部分

  • 生成jar包

默认情况下,通过 maven 执行 package 命令后,会生成 jar 包,且该 jar 包会内置了 tomcat 容器,

通过 java -jar 就可以运行项目

  • 打包成war文件

思路:

1让 SpringbootApplication 类继承 SpringBootServletInitializer 并重写 configure 方法,

2:然后修改pom.xml文件 //<packaging>war</packaging>

代码如下

@SpringBootApplication

public class SpringbootApplication extends SpringBootServletInitializer

{

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(SpringbootApplication.class);

}

public static void main(String[] args) {

SpringApplication.run(SpringbootApplication.class, args);

}

}

//然后修改pom.xml文件 //<packaging>war</packaging>

原文地址:https://www.cnblogs.com/liguo-wang/p/8988261.html

时间: 2024-08-05 18:00:48

spring boot 基础 2018年5月3日的相关文章

Spring Boot 基础

Spring Boot 基础 Spring Boot 项目(参考1) 提供了一个类似ASP.NET MVC的默认模板一样的标准样板,直接集成了一系列的组件并使用了默认的配置.使用Spring Boot 不会降低学习成本,甚至增加了学习成本,但显著降低了使用成本并提高了开发效率.如果没有Spring基础不建议直接上手. 1.基础项目 这里只关注基于Maven的项目构建,使用Spring Boot CLI命令行工具和Gradle构建方式请参考官网. (1)创建项目: 创建类型为quickstart的

Spring Boot基础-Spring Tool Suite工具的安装的安装

Spring Boot基础教程1-Spring Tool Suite工具的安装 Spring Boot基础教程2-RESTfull API简单项目的快速搭建 Spring Boot基础教程3-配置文件详解:Properties和YAML Spring Boot基础教程4-配置文件-多环境配置 Spring Boot基础教程5-日志配置-logback和log4j2 源码地址:https://github.com/roncoo/spring-boot-demo 1.工具下载地址: Eclipse:

Spring Boot 基础概述

上半年一直忙于工作,没有太多的时间去写文字,期间也比较关注 .net core 的发展,比较看好 asp.net core 的 OO 抽象设计,也参考了abp.zero 的设计.其实大多数情况平常的工作主要还是结合一些理论与技术框架快速实现:个人的时间就是成本,最近打算整理下 Spring Boot  的相关知识,也算是多一种选择吧 . 概述与目录 对于学习新的知识,我认为最快的方式就是先过一遍官方的文档,这一步很重要:后面再结合实际情况的运用就好了.所以我罗列了一些目录,应该覆盖了大多数的运用

Spring Boot基础-RESTfull API简单项目的快速搭建

Spring Boot基础教程1-Spring Tool Suite工具的安装 Spring Boot基础教程2-RESTfull API简单项目的快速搭建 Spring Boot基础教程3-配置文件详解:Properties和YAML Spring Boot基础教程4-配置文件-多环境配置 Spring Boot基础教程5-日志配置-logback和log4j2 源码地址:https://github.com/roncoo/spring-boot-demo 一.搭建一个简单的RESTfull

漫谈spring cloud 与 spring boot 基础架构

详情请交流  QQ  709639943 01.漫谈spring cloud 与 spring boot 基础架构 02.漫谈spring cloud分布式服务架构 03.Node.js入门到企业Web开发中的应用 04.精通高级RxJava 2响应式编程思想 05.Java秒杀系统方案优化 高性能高并发实战 06.Java深入微服务原理改造房产销售平台 07.快速上手Linux 玩转典型应用 08.快速上手Ionic3 多平台开发企业级问答社区 09.Java Spring Security开

Spring Boot基础教程》 第1节工具的安装和使用

<Spring Boot基础教程> 第1节 工具的安装和使用 Spring Boot文档 https://qbgbook.gitbooks.io/spring-boot-reference-guide-zh/content/I.%20Spring%20Boot%20Documentation/ 一.课程使用的工具                                                      Spring Tool Suite:https://spring.io/to

二、Spring Boot基础

[学习Spring Boot基础,创建Spring Boot项目,讲解Spring Boot的配置,是学习Spring Cloud Alibaba的必知必会.] Spring Boot基础 快速创建应用  https://www.cnblogs.com/my-program-life/p/11592838.html Spring Boot基础知识  https://www.cnblogs.com/my-program-life/p/11958428.html 补充知识: Spring Boot

2018年4月2日推荐文章精选 “推荐好文,一篇看尽”

记录一次邮件容灾恢复过程 作者:Juck_Zhang简介:客户目前使用的是Exchange Server 2013,两前两后,数据盘是存储挂载过来的,邮件备份使用的是NBU,由于机房漏水,导致存储服务器宕机.导致绝大部分数据丢失. Nginx+Tomcat+memcached高可用会话保持 作者:dyc2005简介:本文通过 Tomcat Session Replication Cluster(tomcat自带)和tomcat结合memcat及第三方组件实现Tomcat Memcache Ses

资讯 | 2018年1月15日微信公开课解读!微信小程序开发资源

引言:2018年1月15日 微信公开课PRO开课了,本次课时内容将涉及:小程序.智慧零售.企业微信.小游戏  (附学习参考资料) 为了快速理解「2018 微信公开课 PRO 版」上张小龙的一小时演讲内容,结合下午微信公开课课室A_B_C的课时安排,这里为大家提前整理了相应的小程序学习参考资料: 微信公开课pro_A课室(14:00-17:50) 主题:小程序产品能力.开发.应用及规则 一.如何开发一个优秀的微信小程序/小游戏 微信小程序官方工具  https://mp.weixin.qq.com