zoukankan      html  css  js  c++  java
  • Spring Boot 入门

    目录

    Spring Boot 入门    1

    1    介绍    2

    1.1    版本    2

    1.2    启动类    3

    1.3    配置文件    3

    2    第一个Spring Boot web应用    3

    2.1    idea创建demo应用    3

    2.2    建好的应用结构    6

    2.3    Pom.xml    7

    2.4    增加一个controller进行测试    8

    2.5    启动应用    8

    2.6    测试    9

    3    支持jdbcTemplate    9

    3.1    Pom.xml增加依赖    9

    3.2    配置文件里增加数据源信息    10

    3.3    在dao里使用JdbcTemplate    10

    3.4    测试    10

    4    支持MyBatis    11

    4.1    Pom.xml里增加依赖    11

    4.2    增加dao接口    12

    4.3    增加接口对应的Mapper    12

    4.4    启动类里增加@MapperScan    12

    4.5    测试    13

    5    读取配置文件里的属性    14

    5.1    自定义配置文件    15

    6    日志    16

    7    测试    17

    8    扩展    18

    8.1    如果启动类所在目录为较底层目录    18

    8.2    打包+运行    18

    8.2.1    idea打包    18

    8.2.2    使用java –jar运行此jar    19

    8.3    使用profile区分配置    20

    8.3.1    测试profile    20

     

    Spring Boot 入门

     

     

    参考官方文档

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

    1. 介绍

     

     

     

    SpringBoot可以帮助开发者更容易的创建基于Spring的应用程序和服务

    默认集成了Tomcat容器,所以可以独立运行,可以不依赖于外部容器。当然也可以达成war包部署

    提供了一种从main()方法启动的便捷方式,也就说:只需要在main方法所在的类右键Run即可启动应用

    相比于传统的spring应用里需要各种配置,比如web.xml 加载spring、spring mvc,扫描路径等,SpringBoot只需要很少的几个配置或者注解就可以达到。

    整合了很多框架,pom.xml里只需要引入需要的starter依赖就可以了。

     

     

    1. 版本

    Spring Boot 1.5.8(目前我们使用的):

    此版本默认使用1.7的jdk(官方建议使用1.8),4.3.12.RELEASE 版本的spring框架。

    内嵌Tomcat 8

    Maven 3.2或更高版本

     

     

    最新的Spring Boot 2.0.0.BUILD-SNAPSHOT:

    Java 8  and Spring Framework 5.0.2.RELEASE or above.

     

    1. 启动类

    
    
    使用@SpringBootApplication注解

     

    1. 配置文件

    默认使用的application.properties/ application.yml

     

    yml文件书写时注意,冒号和value之间有个空格

     

    上面的写法相当于properties文件里的:

    server.port=8081

    server.context-path=/demo

    1. 第一个Spring Boot web应用

    1. idea创建demo应用

    idea自带file->new->project->Spring Initializr 然后next。。next。。。

     

    如果是搭一个最简单的web应用。只需要勾选如下Web即可:

     

    如果使用mybatis则需要勾选下图的MyBatis,如果使用jdbcTemplate,则需要勾选下图的JDBC---此时需要在创建好的工程的配置文件里设置相应的数据源。

     

    也可以不勾选,直接在pom文件里添加对应的依赖即可。

     

     

    1. 建好的应用结构

     

    正常启动类在相对于其他目录的较高层目录。。如果修改启动类的路径,需要修改@SpringBootApplication的scanBasePackages,具体可参考后面的章节

     

     

     

    1. Pom.xml

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8.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>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    </dependency>
    </dependencies>

    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>

    </project>

     

     

    注意:如果网络不好,可能会打不开上面的界面。也可以自行创建一个普通的maven工程。。然后参考上面的pom文件进行修改:1.修改<parent>节点 2.增加springboot的相关依赖 3.<build>节点里增加spring-boot-maven-plugin,这样打出来的才是一个可执行的jar

     

    1. 增加一个controller进行测试

    1. 启动应用

     

     

    默认的端口是8080.。如需修改,请在application.yml里修改

    server:
    port:
    8080 #如果此处不配置,则使用默认的8080端口.。

     

    1. 测试

     

    1. 支持jdbcTemplate

    1. Pom.xml增加依赖

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    </dependency>

     

    1. 配置文件里增加数据源信息

    spring:
    datasource:
    driver-class-name:
    oracle.jdbc.driver.OracleDriver
    url: jdbc:oracle:thin:@ip:端口:sid
    username: 用户名
    password: 密码

     

    恭喜你,下面可以使用Autowired注入JdbcTemplate了

    1. 在dao里使用JdbcTemplate

    1. 测试

    可以增加自己的controller类进行测试

    1. 支持MyBatis

    1. Pom.xml里增加依赖

    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
    </dependency>

     

    和使用jdbctemplate一样,需要在配置文件里存在需要的数据源信息。

     

    1. 增加dao接口

     

    1. 增加接口对应的Mapper

    在resources的同级目录增加同名的xml文件。。当mapper xml与mapper class不在同一个目录下时需要在配置文件指定mybatis.mapper-locations,比如: mybatis.mapper-locations=classpath*:com/codeya/springboot/**/dao/*.xml

    1. 启动类里增加@MapperScan

    basePackage 指定mybatis接口对应的包的位置

     

    1. 测试

     

    1. 读取配置文件里的属性

    使用@Value("${属性名}")获取配置文件里的属性

     

    举例:

    配置文件里增加两个属性

     

     

    1. 自定义配置文件

    使用@PropertySource 来引入配置文件。。此注解需要与@Configuration 配合使用。

     

    1. 日志

     

    SpringBoot默认使用的logback。默认纪录到INFO级别,即记录ERROR, WARN和INFO级别的信息。

    如某路径需输出debug级别的日志,需要在配置文件里定义logging.level.包路径=DEBUG,比如下图的com.example.demo: debug表示com.example.demo包的日志输出级别是debug

    logging.level.root表示该应用总的日志开关,默认是INFO。

    因为输出日志文件需要消耗I/O性能,生产环境请将所有日志开关设置为ERROR

     

    默认不输出到文件,如需输出文件,需要在配置文件中设定logging.file属性,此属性可定义相对路径或绝对路径。

     

    日志文件每达到10M就会被分割。

    logging.pattern.console 是定义控制台显示日志时的格式

    logging.pattern.file是定义文件记录日志时的格式

    这两个值默认不需要设置,但默认的格式不会输出行号。。如需输出行号,可以改成下图里的格式。。

    其中%L表示行号

     

    logging:
    file:
    log/log.log
    level:
    root:
    info
    com.codeya.springboot: debug
    pattern:
    console:
    -%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}:%L){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
    file: -%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39}:%L:%m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}

     

    1. 测试

    SpringBootTest里的classes指定的是启动类

    1. 扩展

    1. 如果启动类所在目录为较底层目录

    正常启动类在相对于其他目录的较高层目录(左图),如果将启动类加到一个底层目录,比如新增的main目录下会怎样呢?

     

    如果启动类里不做改动,则原来的路径访问都会报404.。这是因为默认的扫描路径是启动类的子目录。。

    此时需要手动指定启动类里的scanBasePackages

     

     

    1. 打包+运行

      1. idea打包

    idea见下图,使用的命令clean package -Dmaven.test.skip,。。也可以使用命令行mvn clean package -Dmaven.test.skip进行打包

     -Dmaven.test.skip=true 跳过测试。    

     

     

    最终打出来的包:

    可以自己打开看看。。这个jar的目录和普通的jar不太一样。。里面包含了lib和内嵌的tomcat。。

    1. 使用java –jar运行此jar

    Java –jar demo-0.0.1-SNAPSHOT.jar

     

    1. 使用profile区分配置

    默认先加载application.yml/.properties文件,然后使用对应的profile文件来覆盖其配置。。

    可以在启动的时候指定profile。也可以在application文件里指定spring.profiles.active(见下图)。

    如果是启动参数里设置则:Java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

     

    1. 测试profile

    我们在application.yml 里设置的端口为8080,test. properties1= hellooooooooooooo

    新增加两个配置文件application-product.yml 、application-dev.yml、,端口分别设为8081和8082,

    test. properties1的值分别加上对应的后缀。。见下图

     

     

     

     

    然后启动配置里指定profile(可以看出是文件的后缀),参考下图:

    也可以这样设置:

     

    启动测试

  • 相关阅读:
    博客园美化(三)
    博客园美化(二)
    python异常处理
    博客园美化(一)
    STD二手图书交流平台团队博客-用户画像
    STD二手图书交流平台团队博客-电梯演讲
    学习如何运用GitHub网站+出现的问题+Git基本操作总结
    人月神话阅读笔记(二)
    人月神话阅读笔记(一)
    Android studio Handler消息处理1
  • 原文地址:https://www.cnblogs.com/codeya/p/spring_boot.html
Copyright © 2011-2022 走看看