# 构建项目
## Maven 构建项目
* 1、访问 http://start.spring.io/
* 2、选择构建工具 Maven Project、Java、Spring Boot 版本 2.1.3 以及一些工程基本信息,可参考下图所示:
![](https://img.kancloud.cn/81/6f/816f33ade6da4a64b118be1c86ebee81_752x624.png)
* 3、点击 Generate Project 下载项目压缩包
* 4、解压后,使用 Idea 导入项目,File -> New -> Model from Existing Source.. -> 选择解压后的文件夹 -> OK,选择 Maven 一路 Next,OK done!
* 5、如果使用的是 Eclipse,Import -> Existing Maven Projects -> Next -> 选择解压后的文件夹 -> Finsh,OK done!
![](https://img.kancloud.cn/45/a8/45a867d77bb3de4e87c2c51f3087da2c_851x192.png)
## Idea 构建项目
* 1、选择 File -> New —> Project… 弹出新建项目的框
* 2、选择 Spring Initializr,Next 也会出现上述类似的配置界面,Idea 帮我们做了集成
* 3、填写相关内容后,点击 Next 选择依赖的包再点击 Next,最后确定信息无误点击 Finish。
# 项目结构介绍
![](https://img.kancloud.cn/de/15/de15926d36d6dc061eafe7da3af64950_1328x517.png)
如上图所示,Spring Boot 的基础结构共三个文件:
* `src/main/java`程序开发以及主程序入口
* `src/main/resources`配置文件
* `src/test/java`测试程序
另外, Spring Boot 建议的目录结果如下:
root package 结构:`com.example.myproject`
```java
com
+- example
+- myproject
+- Application.java
|
+- model
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|
```
* 1、Application.java 建议放到根目录下面,主要用于做一些框架配置
* 2、model 目录主要用于实体与数据访问层(Repository)
* 3、service 层主要是业务类代码
* 4、controller 负责页面访问控制
采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改
最后,启动 Application main 方法,至此一个 Java 项目搭建好了!
# 引入 web 模块
1、pom.xml中添加支持web的模块:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
> pom.xml 文件中默认有两个模块:
* `spring-boot-starter`:核心模块,包括自动配置支持、日志和 YAML,如果引入了`spring-boot-starter-web`web 模块可以去掉此配置,因为`spring-boot-starter-web`自动依赖了`spring-boot-starter`。
* `spring-boot-starter-test`:测试模块,包括 JUnit、Hamcrest、Mockito。
2、编写 Controller 内容:
```java
package com.tinywan.train.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@RequestMapping("/hello/world")
public String index(){
return "Hello World! /hello/world ";
}
}
```
> `@RestController` 的意思就是 Controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了!
3、启动主程序,打开浏览器访问`http://localhost:8080/hello`,就可以看到效果了,有木有很简单!
- 序言
- 基础
- 安装
- 开发规范
- 目录结构
- 配置
- 快速入门
- 架构
- 请求流程
- 架构总览
- URL访问
- 容器和依赖注入
- 中间件
- 事件
- 代码层结构
- 四个层次
- 路由
- 控制器
- 请求
- 响应
- 数据库
- 模型
- 视图
- 注解
- 错误和日志
- 异常处理
- 日志处理
- 调试
- 验证
- 验证器
- 验证规则
- 扩展库
- 附录
- Spring框架知识体系详解
- Maven
- Maven和Composer
- 构建Maven项目
- 实操课程
- 01.初识SpringBoot
- 第1章 Java Web发展史与学习Java的方法
- 第2章 环境与常见问题踩坑
- 第3章 springboot的路由与控制器
- 02.Java编程思想深度理论知识
- 第1章 Java编程思想总体
- 第2章 英雄联盟的小案例理解Java中最为抽象的概念
- 第3章 彻底理解IOC、DI与DIP
- 03.Spring与SpringBoot理论篇
- 第1章 Spring与SpringBoot导学
- 第2章 Spring IOC的核心机制:实例化与注入
- 第3章 SpringBoot基本配置原理
- 04.SprinBoot的条件注解与配置
- 第1章 conditonal 条件注解
- 第2章 SpringBoot自动装配解析
- 05.Java异常深度剖析
- 第1章 Java异常分类剖析与自定义异常
- 第2章 自动配置Url前缀
- 06.参数校验机制与LomBok工具集的使用
- 第1章 LomBok工具集的使用
- 第2章 参数校验机制以及自定义校验
- 07.项目分层设计与JPA技术
- 第1章 项目分层原则与层与层的松耦合原则
- 第2章 数据库设计、实体关系与查询方案探讨
- 第3章 JPA的关联关系与规则查询
- 08.ORM的概念与思维
- 第1章 ORM的概念与思维
- 第2章 Banner等相关业务
- 第3章 再谈数据库设计技巧与VO层对象的技巧
- 09.JPA的多种查询规则
- 第1章 DozerBeanMapper的使用
- 第2章 详解SKU的规格设计
- 第3章 通用泛型Converter
- 10.令牌与权限
- 第1章 通用泛型类与java泛型的思考
- 常见问题