小工具      在线工具  汉语词典  css  js  c++  java

springboot的使用(一)

java-spring,spring,springboot,spring,springboot 额外说明

收录于:40天前

例子均来自官方网站

官网有很多和其它 模块接的例子,如果用springboot迷茫的时候,这真是一剂良药

spring_boot 最简单的例子

  • pom.xml
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.4.3.RELEASE</version>
    </dependency>


</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>

</build>
  • 示例.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

}
$ mvn spring-boot:run
  • 打成可运行jar包
    mvn package
    使用:
java -jar target/myproject-0.0.1-SNAPSHOT.jar

自定义配置

不可能总是用默认,如果要自己配置呢?
程序启动的时候,我们会看到banner

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.3.RELEASE)

如果你对这个东西不满意,你可以配置它让它不出现。您可以按如下方式设置:

spring:
  main:
    banner-mode: "on"

由于它是一个网络,我想定义端口和项目名称。

server:
  port: 8081
  context-path: /myproject

那这些配置在哪?官网是用YAML 来配置,
在resources 里加 application.yml

server:
  port: 8081
  context-path: /myproject
spring:
  main:
    banner-mode: "on"

这样就达到了配置的效果。

也可以这样配置。它很少使用,但要注意这种链条样式。

public static void main(String[] args) throws Exception {
    new SpringApplicationBuilder()
            .sources(Parent.class)
            .child(Example.class)
            .bannerMode(Banner.Mode.OFF)
            .run(args);
}

使用配置文件值

  • @Value使用
    配置文件application.yml:
env: debug

代码用法:

    @Value("${env}")
    private String env;
  • 如果配置有点复杂可以直接用实体来定:
connection:
  username: admin
  password: admin_pwd

FooProperties 类

@Component
@ConfigurationProperties(prefix="connection")
public class FooProperties {
    

    private String username;
    private String password ;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

使用:

@Autowired FooProperties fooProperties;

关于日志,切换日志组件

  • springboot默认是logback
    加上logback.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            </pattern>
        </layout>
    </appender>

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>
  • 如果喜欢用log4j2
    1,把pom.xml 改下
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

2.添加mylog4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT" follow="true">
            <PatternLayout>
                <pattern>%d %p %C{1.} [%t] %m%n</pattern>
            </PatternLayout>
        </Console>
    </Appenders>

    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

3,名字叫mylog4j2.xml,肯定不标准,这里手动指定一下
在application.yml中写上

logging:
  config: classpath:mylog4j2.xml

相关代码

https://github.com/huawumingguo/springbootsample/tree/master/springbootbasic

. . .

相关推荐

额外说明

win10中如何关闭F1~F12快捷键?

如何关闭关闭电脑上的F1~F12的快捷键呢? 默认情况下,按下会快捷唤醒图标上显示的功能,这样的话,我们使用某些组合快捷指令的时候,会有冲突,所以将其关闭。 解决方法: 按下Fn+Esc键即可。 Fn+Esc  

额外说明

spring令牌限流

public class RateLimitException extends RuntimeException{ } /** * 限流 */ public class RateLimitFilter extends ZuulFilter {

额外说明

C.6基线提升至96.45%:2022 司法杯犯罪事实实体识别+数据蒸馏+主动学习

NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性

额外说明

MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解

MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解 第 12 章_MySQL数据类型精讲 1. MySQL中的数据类型 2. 整数类型 2. 1 类型介绍 2. 2 可选属性 2. 2. 1 M 2. 2. 2 UNSIGNED 2. 2

额外说明

架构进阶-优化邮件发送代码

小伙伴们,你们好呀!我是老寇!(本文用于记录代码,如果能帮助你,不胜荣幸) 一、环境准备 SpringBoot 2.0.0 QQ邮箱授权码 二、开发环节 2.1.导入依赖(2021/11/13) <?xml version="1.0" encoding=

额外说明

【PHP & MySQL】数据库专题 第一课 数据库介绍

【PHP & MySQL】✔️数据库专题✔️ 第一课 数据库介绍 概述 数据 数据管理 数据库 数据库管理系统 关系型数据库 SQL 简介 SQL 语言的分类 数据定义语言 数据操纵语言 数据控制语言 数据查询语言 存储引擎 概述 从今天开始, 小白我将

额外说明

【C# 基础精讲】文件流和文本处理

文件流是C#中用于进行文件读写操作的重要概念,它提供了一种逐字节或逐块访问文件内容的机制。文本处理则是指在读取和写入文件时,对文本数据进行解析、操作和转换的过程。在本文中,我们将深入探讨文件流的概念、种类以及使用方法,并介绍在文本处理过程中常见的操作和技

额外说明

如何创建Spring Boot项目

文章目录 1. 总述 2. Spring Boot官网产生Maven类型的项目后导入Eclipse 步骤1:进入项目创建页面: https://start.spring.io/, 确认框框中的输入。 步骤2. 点击“Generate the projec

额外说明

六顶思考帽 学习笔记

  作者:叶晖俊 [email protected] 2008年10月2日   注: 六顶思考帽学习笔记, 作者叶晖俊。 本文版权归属作者所有,可以自由转载,但是必须注明出处和作者,否则将追究法律责任。     2008年10月1日,非常幸运的去听

额外说明

Windows 集成的身份验证连接SQL Server数据库,打造更安全的连接

更安全的SQL Server连接方式 摘要:今天用C#编写一个Windows 服务程序,其中要连接一个Windows 2003 Server上的SQL Server 2000 数据库,用SQL Server 身份验证。发现普通程序都能联上,但是Windo

ads via 小工具