SpringBoot 使用
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组成:
标签声明了第三方依赖和插件的版本号 标签声明SpringBoot的依赖和第三方依赖,值得注意的是,此标签中声明的依赖不会被子项目直接继承,在子项目中仅需声明groupId和artifactId就可使用 标签规定了插件依赖,此标签中声明的依赖不会被子项目直接继承
设定parent的项目提供的一些特性:
- 提供依赖管理节点:允许你省略常见依赖的
标签,版本号自动继承来自spring-boot-dependencies的POM - 默认编译级别为Java 1.6和默认编码为UTF-8
- 具备资源过滤、插件配置、配置文件(.properties/.yml)的筛选
- 可通过配置pom.xml中的
标签的属性覆盖spring-boot-dependencies pom中的属性 来达到自定义项目配置的目的
不使用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配置 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记录日志 |代码结构:
建议遵循Java推荐的包命名规范,使用反转域名规定项目包名会自动配置default package
├─src
+- main │ +- java │ +- top │ +- harviealwayshere │ +- demo
│ +- App.java
│ +- controller
│ +- dao │ +- service
+- resources
在主类(如App.java)使用注解和main方法中启动项目
1
2
3
4
5
6
7
8
9//扫描配置 扫描此类下的注解实体
//加载配置类
//开启组件扫描 扫描到的@Service@Controller等均会自动注册成Spring Beans
public class App {
//启动项目方法入口
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}使用@SpringBootApplication注解:
@SpringBootApplication相当于@Configuration+@EnableAutoConfiguration+@ComponentScan注解的和