Spring Boot 项目初始化

Spring Boot 项目创建

File->New->New Project->Spring Initializr

  • 勾选 Web
  • Spring Boot 版本选择稳定版,本文选择 2.1.1
  • 最后一步,填写工程名字点击 finish

本地访问地址:http://localhost:8080/

新建一个 Project, 系统都会帮我们创建一个名为 artifactId+Application 的入口类,这个类中有一个 main 方法,这个 main 方法就是一个标准的 Java 应用程序的入口方法。

Spring Boot设置

maven 源设置

    <repositories>
        <repository>
            <id>cxx-mirror</id>
            <name>cxx-mirror</name>
            <url>http://xxx.com/maven/</url>
        </repository>
    </repositories>

Intellij Idea Spring Boot 热部署

  • src->main->resources新建一个banner.txt文件。
  • 通过 http://patorjk.com/software/taag 网站生成需要的字符,将字符拷贝到步骤1所创建的 txt 文档中
  • https://www.bootschool.net/ascii 这里也可以生成 banner.txt 内容
  • 图片 Banner 定制,图片的 banner 支持 gifpngjpef 格式的图片。使用时,选用合适的图片,然后将图片名字改成 banner,和文字的 banner.txt 文件一样,放到 resource 目录下即可。如果在 resource 目录下既有 banner.txt 文件,又有 banner 的图片文件,SpringBoot 会先显示图片 banner ,然后再显示文本的 banner

SpringBoot配置文件

Spring Boot使用一个全局的配置文件 application.properties 或者 application.yml,配置文件放在 src/main/resources 目录下。properties 是我们常见的一种配置文件,Spring Boot不仅支持properties这种类型的配置文件,也支持yaml语言的配置文件。

目前项目中,常用 application.yml 这样的配置文件。

中文不做特殊处理会乱码:

例如:修改Tomcat默认端口和默认访问路径

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

可以在 application.yml 中添加:

server:
  port: 8081

同样,在 application.properties 文件中添加如下代码:

server.servlet.context-path=/helloboot
server.port=8081

日志配置

默认情况下Spring Boot使用Logback作为日志框架,也就是我们前面几篇博客中用到的打印日志方式,当然如果有需要我们可以手动配置日志级别以及日志输出位置,相比于我们在Spring容器中写的日志输出代码,这里的配置简直就是小儿科了,只需要在application.properties中添加如下代码:

server:
  servlet:
    context-path: /helloboot
book:
  author: 罗贯中
  name: 三国演义
  pinyin: sanguoyanyi
spring:
  profiles:
    active: prod
  jackson:
    time-zone: Asia/Hong_Kong
    date-format: yyyy-MM-dd HH:mm:ss
    serialization:
      write_dates_as_timestamps: false

# 日志配置参考 https://www.jianshu.com/p/1fa12b92d5c4
logging:
  level:
    root: WARN
    org:
      springframework:
        security: DEBUG
        web: ERROR
      hibernate: DEBUG
      apache:
        commons:
          dbcp2: DEBUG
    com:
      example:
        demo: DEBUG
  # logging.file属性用来定义文件名,不仅仅可以配置文件名,也可以路径+文件名。
  #  相对路径,相对项目根路径
  #  绝对路径
  file: D:/00-Temp/Java/logs/demo/michale-demo.log
  pattern:
    #  设置logging.patter.console属性我们能改变输出到console的日志样式
    console: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
    # 改变文件中的日志样式我们需要设置logging.pattern.file属性
    file: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'

# 我们可以通过命令行使能DEBUG ,TRACE级别的日志输出,效果是跟配置文件一样的

debug: true
trace: fasle

日志设置参考:

类型安全的配置

1.将 properties 属性和一个 Bean 关联在一起,这样使用起来会更加方便

resources->book.yml

book:
  author: 曹雪芹
  name: 红楼梦
  price: 28

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

https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor

注意,BookBean 注解这么写:

//prefix是指前缀,location指定要注入文件的位置
@Component
@ConfigurationProperties(prefix = "book")
@PropertySource("classpath:book.yml")

Profile配置问题

在Spring Boot 中系统提供了更为简洁的方式。全局Profile配置我们使用application-{profile}.properties来定义,然后在application.properties中通过spring.profiles.active来指定使用哪个Profile

1.在src/main/resources文件夹下定义不同环境下的Profile配置文件,文件名分别为:

  • application-prod.properties
  • application-dev.properties

这两个前者表示生产环境下的配置,后者表示开发环境下的配置,如下:

server.port=8081 # application-prod.properties:
server.port=8080 # application-dev.properties:

然后在application.properties中进行简单配置,如下:

spring.profiles.active=dev

SpringBoot启动过程

artifactId+Application的入口类,这个类中有一个main方法,这个main方法就是一个标准的Java应用程序的入口方法。@SpringBootApplication其实是一个组合注解。

唯一要注意的是如果我们使用了@SpringBootApplication注解的话,系统会去入口类的同级包以及下级包中去扫描实体类,因此我们建议入口类的位置在groupId+arctifactID组合的包名下。

如果我们只想要@SpringBootApplication去扫描特定的类而不是全部类,那么就可以关闭自动配置,如下:

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

SpringBoot 目录结构

目录结构理解

  • controller:前端控制器,负责页面访问控制,主要是对外提供的API接口,用户使用服务时的入口处,可以结合swagger生成对应的API文档
  • service:数据服务层,逻辑层,主要是业务类代码,归档了前端控制器中相关服务的操作方法接口类,该文件夹下包含子impl文件夹,归档对应的实现接口
  • domain:实体类,归档对应的实体(Entity),一个实体尝尝就对应着数据库中一张表
  • dao:数据访问层,实体类对应的数据库操作接口类,提供增删改查 MongoDB 接口
  • config:配置信息类
  • utils:工具类
  • constant:常量接口类

目录结构参考

FAQ

学习资源

Spring Boot 工程基础使用:

转载于:https://www.cnblogs.com/michael-xiang/p/10466950.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值