SpringBoot手册学习(二)SringBoot使用

SpringBoot 使用

  1. Parent节点

    Maven用户在其pom.xml中可以继承spring-boot-starter-parent项目来获取合适的默认设定
    1
    2
    3
    4
    5
    6
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>

    spring-boot-dependencies pom组成:

    1. 标签声明了第三方依赖和插件的版本号
    2. 标签声明SpringBoot的依赖和第三方依赖,值得注意的是,此标签中声明的依赖不会被子项目直接继承,在子项目中仅需声明groupId和artifactId就可使用
    3. 标签规定了插件依赖此标签中声明的依赖不会被子项目直接继承

    设定parent的项目提供的一些特性:

    1. 提供依赖管理节点:允许你省略常见依赖的标签,版本号自动继承来自spring-boot-dependencies的POM
    2. 默认编译级别为Java 1.6和默认编码为UTF-8
    3. 具备资源过滤、插件配置、配置文件(.properties/.yml)的筛选
    4. 可通过配置pom.xml中的标签的属性覆盖spring-boot-dependencies pom中的属性来达到自定义项目配置的目的
  2. 不使用Parent节点:

    Maven通过节点实现单继承,通过节点实现多继承,可通过如下代码实现,Maven继承关系可参考这篇文章

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <dependecyManagement>
    <dependencies>
    <dependecy>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependecies</artifactId>
    <version>1.4.1.BUILD-SNAPSHOT</version>
    <type>pom</type>
    <scope>import</scope>
    </dependecy>
    </dependencies>
    </dependecyManagement>

    使用这种方法可以在中通过声明多个标签来使用公司标准的parent或者显式声明所有的Maven配置

  3. Starters:

    所有官方starters遵循相同命名模式spring-boot-starter-*,提供许多依赖合集,如

    | 名称 | 描述 |
    | ————————— | :————————————————- |
    | spring-boot-starter-test | 包含常用测试库,如JUnit |
    | spring-boot-starter-web | 使用Spring MVC构建web项目,包含RESTful和内置Tomcat |
    | spring-boot-starter-jdbc | 对JDBC的支持 |
    | spring-boot-starter-logging | 使用Log4j2记录日志 |

  4. 代码结构:

    1. 建议遵循Java推荐的包命名规范,使用反转域名规定项目包名会自动配置default package

      ├─src

      +- main
       │    +- java
       │       +- top
       │          +- harviealwayshere
       │                +- demo
      

      ​ │ +- App.java

      ​ │ +- controller

      │                    +- dao
      │                    +- service
      

      ​ +- resources

    2. 在主类(如App.java)使用注解和main方法中启动项目

      1
      2
      3
      4
      5
      6
      7
      8
      9
      @EnableAutoConfiguration  //扫描配置 扫描此类下的注解实体
      @Configuration //加载配置类
      @ComponentScan //开启组件扫描 扫描到的@Service@Controller等均会自动注册成Spring Beans
      public class App {
      //启动项目方法入口
      public static void main(String[] args) {
      SpringApplication.run(App.class, args);
      }
      }
    3. 使用@SpringBootApplication注解:

      @SpringBootApplication相当于@Configuration+@EnableAutoConfiguration+@ComponentScan注解的和