Spring Boot学习一:入门
前言:Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot 默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。它的核心设计思想是:约定优于配置,Spring Boot 所有开发细节都是依据此思想进行实现的。
Spring Boot 特性
- 使用 Spring 项目引导页面可以在几秒构建一个项目;
- 方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks;
- 非常简洁的安全策略集成;
- 支持关系数据库和非关系数据库;
- 支持运行期内嵌容器,如 Tomcat、Jetty;
- 强大的开发包,支持热启动;
- 自动管理依赖;
- 自带应用监控;
- 支持各种 IED,如 IntelliJ IDEA、NetBeans。
Spring Boot 的核心:约定优于配置
约定优于配置(Convention Over Configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量、获得简单的好处,而又不失灵活性。
在 Spring 体系中,Spring Boot JPA 就是约定优于配置最佳实现之一,不需要关注表结构,我们约定类名即是表名,属性名即是表的字段,String 对应 varchar,long 对应 bigint,只有需要一些特殊要求的属性,我们再单独进行配置,按照这个约定我们可以将以前的工作大大简化。
Spring Boot Starters
Spring Boot Starters基于约定优于配置的理念来设计,Spring Boot Starter 中有两个核心组件:自动配置代码和提供自动配置模块及其它有用的依赖。也就意味着当我们项目中引入某个 Starter,即拥有了此软件的默认使用能力,除非我们需要特定的配置,一般情况下我仅需要少量的配置或者不配置即可使用组件对应的功能。
完整的 Starter 参考这里:Spring Boot application starters。
Spring、Spring Boot 和 Spring Cloud 的关系
正是由于 Spring IoC 和 Spring Aop 两个强大的功能才有了 Spring,Spring 生态不断的发展才有了 Spring Boot,使用 Spring Boot 让 Spring 更易用更有生命力,Spring Cloud 是基于 Spring Boot 开发的一套微服务架构下的服务治理方案。
Spring Boot 依赖环境和项目结构介绍
Spring Boot 2.0 要求 Java 8 作为最低版本.
构建项目
我们有两种方式来构建 Spring Boot 项目基础框架,第一种是使用 Spring 官方提供的构建页面;第二种是使用 IntelliJ IDEA 中的 Spring 插件来创建。
使用 Spring 官方提供页面构建
访问 http://start.spring.io/ 网址。
选择构建工具 Maven Project,编程语言选择 Java、Spring Boot 版本 2.0.5 以及一些工程基本信息,具体可参考下图。
- 单击 Generate Project 下载项目压缩包。
- 解压后,使用 IDEA 导入项目,选择 File | New | Model from Existing Source… | 选择解压后的文件夹 | OK 命令,选择 Maven,一路单击 Next 按钮,OK done!
使用 IDEA 构建
- 选择 File | New | Project… 命令,弹出新建项目的对话框。
- 选择 Spring Initializr,Next 也会出现上述类似的配置界面,IDEA 帮我们做了集成。
项目结构介绍
Spring Boot 建议的目录结构如下。
com.example.myproject 目录下:
myproject
+-src
+- main
+- java
+- com.example.myproject
+- comm
+- model
+- repository
+- service
+- web
+- Application.java
+- resources
+- static
+- templates
+- application.properties
+- test
+-pom.xml
com.example.myproject 目录下:
-
Application.java,建议放到根目录下面,是项目的启动类, Spring Boot 项目只能有一个 main() 方法;
-
comm 目录建议放置公共的类,如全局的配置文件、工具类等;
-
model 目录主要用于实体(Entity)与数据访问层(Repository);
-
repository 层主要是数据库访问层代码;
-
service 层主要是业务类代码;
-
web 层负责页面访问控制。
resources 目录下: -
static 目录存放 web 访问的静态资源,如 js、css、图片等;
templates 目录存放页面模板; -
application.properties 存放项目的配置信息。
-
test 目录存放单元测试的代码;pom.xml 用于配置项目依赖包,以及其他配置。
hello wold
jdk1.8+maven 3.1+springboot2.0.5
项目结构:
测试:
package com.snow.hello;
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloApplicationTests {
private MockMvc mockMvc;
@Before
public void setUp(){
mockMvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void contextLoads() throws Exception{
mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=zhangsan")
.accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print());
}
}
注:项目使用 Spring 官方提供页面构建,pom.xml是原始的配置;Application.java要置于根目录下.
整理自:[纯洁的微笑]