Spring Boot是什么

SpringBoot是伴随着Spring4.0诞生的;

从字面理解,Boot是引导的意思,SpringBoot帮助开发者快速搭建Spring框架;

SpringBoot帮助开发者快速启动一个Web容器,它继承了原有Spring框架的优秀基因,简化了使用Spring的过程。

Spring由于其繁琐的配置,一度被人认为“配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。

Spring Boot更多的是采用Java Config的方式,对Spring进行配置。

因为Spring Boot是与Spring一脉相承的,所以对于广大的Java开发者而言,对于Spring的学习成本几乎为零。

在实践Spring Boot时学习重点,或者说思维方式改变的重点在于:

1)对于REST的理解,这一点尤为重要,需要从设计、开发多个角色达成共识,很多时候都是对于HTTP 1.1协议以及REST的精髓不理解,导致REST被「盲用」而产生一些不好的效果。

2)对于YAML的理解和对于JavaConfig的理解,这两点相对较为简单,本质上是简化了xml文件,并提供等价的配置表述能力。

(我还是太菜了,虽然做过一个SpringMVC的小项目练手,上面有些词听都没听说过)

开始一个Spring Boot项目

1、到intellij idea官网下载Ultimate版本的IDE,因为Community版本默认是没有Spring Initializr来初始化并配置运行Spring Boot的。

2、"New Project"->"Spring Initializr",Java jdk最好选择1.8版本,因为1.7的版本缺少一些关键内容,运行时可能会出错。

初始化的服务网址选择默认就可以。

点击"Next",配置项目基本信息,"Type"选择"Maven Project","Language"选择"Java",此处的"Java Version"应该与上一部的配置保持一致,选择"8"。

点击"Next",选择相关依赖库,勾选上"Web" "JPA" "MySQL" "JDBC"。

点击"Next",设置项目名称完成设置,一个Spring项目就建好了。

随后Idea会从Spring官网下载模板,并应用刚才的设置,初始目录结构如图所示。

项目结构还是看上去挺清爽的,少了很多配置文件,我们来了解一下默认生成的有什么:

  • DemoApplication: 一个带有 main() 方法的类,用于启动应用程序
  • DemoApplicationTests:一个空的 Junit 测试,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
  • application.properties:一个空的 properties 文件,可以根据需要添加配置属性
  • pom.xml: Maven 构建说明文件

我们还需要根据自己的需求建立一些类和文件夹,建议设置如下(其实刚开始根本用不了这么多类别):

代码层的结构

根目录:com.springboot

1.工程启动类(ApplicationServer.java)置于com.springboot.build包下

2.实体类(domain)置于com.springboot.domain

3.数据访问层(Dao)置于com.springboot.repository

4.数据服务层(Service)置于com,springboot.service,数据服务的实现接口(serviceImpl)至于com.springboot.service.impl

5.前端控制器(Controller)置于com.springboot.controller

6.工具类(utils)置于com.springboot.utils

7.常量接口类(constant)置于com.springboot.constant

8.配置信息类(config)置于com.springboot.config

9.数据传输类(vo)置于com.springboot.vo

资源文件的结构

根目录:src/main/resources

1.配置文件(.properties/.json等)置于config文件夹下

2.国际化(i18n))置于i18n文件夹下

3.spring.xml置于META-INF/spring文件夹下

4.页面以及js/css/image等置于static文件夹下的各自文件下

我是在"src/main/java/根包"目录下新建了"Entity"(实体)"Service"(数据服务层与接口,偷个懒..)"Controller"(前端控制器)"Repository"(数据访问层)

"src/main/resources"目录下的"static"存放js/css/image等文件,"templates"存放html页面。

老规矩,先来跑一个Hello World再说。

在Controller下新建HelloController.java:

package com.example.demo.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "Hello World!";
}
}

(有一点忘了说,如果勾选了MySQL和JDBC,一定要在application.yml里面定义数据源和连接信息,否则你是跑不起来的)

然后浏览器访问localhos:8080/hello,perfect!

下一次再详细记录如何编写Spring Boot项目。

参考资料:

Spring boot 项目目录结构

Spring Boot浅谈(是什么/能干什么/优点和不足)

Spring Boot【快速入门】

从零开始Spring项目的更多相关文章

  1. 从零开始--Spring项目整合(1)使用maven框架搭建项目

    这些年一直在用spring的框架搭建项目,现在开始我们从零开始利用Spring框架来搭建项目,目前我能想到有Spring.SpringMVC.SpringJDBC.Mybatis.WebSockt.R ...

  2. 从零开始--Spring项目整合(2)整合SpringMVC

    1.pom.xml 定义版本 <properties> <spring.version>4.2.7.RELEASE</spring.version> <jac ...

  3. SpringMVC+Spring+mybatis项目从零开始--Spring mybatis mysql配置实现

    上一章我们把SSM项目结构已搭建(SSM框架web项目从零开始--分布式项目结构搭建)完毕,本章将实现Spring,mybatis,mysql等相关配置. 1.    外部架包依赖引入 外部依赖包引入 ...

  4. SpringMVC+Spring+mybatis项目从零开始--分布式项目结构搭建

    转载出处: SpringMVC+Spring+mybatis+Redis项目从零开始--分布式项目结构搭建 /** 本文为博主原创文章,如转载请附链接. **/ SSM框架web项目从零开始--分布式 ...

  5. 【Java EE】从零开始写项目【总结】

    从零开发项目概述 最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等... 被虐得不要不要的,即使是非常简单有时 ...

  6. 使用maven给spring项目打可直接运行的jar包(配置文件内置外置的打法)

    从网上看过许多打jar包的例子,大多是将配置文件打进jar包的.经过本人一番研究,终于搞清楚了怎样将jar包的配置文件外置. 废话不说,直接上spring的pom.xml的配置文件. <proj ...

  7. 建立一个Hello World级别的Spring项目

    package com.sevenhu.domain; import org.springframework.context.ApplicationContext; import org.spring ...

  8. (转) Spring读书笔记-----部署我的第一个Spring项目

    一.Spring介绍 Spring是一个轻量级的Java EE容器,它也是一种从实际需求出发,着眼于轻便,灵活,易于开发,易测试和易部署的轻量级开发框架.Spring它完成了大量开发中的通用步骤,留给 ...

  9. Spring读书笔记-----部署我的第一个Spring项目

    一.Spring介绍 Spring是一个轻量级的Java EE容器,它也是一种从实际需求出发,着眼于轻便,灵活,易于开发,易测试和易部署的轻量级开发框架.Spring它完成了大量开发中的通用步骤,留给 ...

随机推荐

  1. 洛谷 2261 [CQOI2007]余数求和

    题目戳这里 一句话题意 求 \(\sum_{i=1}^{n} (k ~~\texttt{mod} ~~i)\) Solution 30分做法: 说实话并不知道怎么办. 60分做法: 很明显直接一遍o( ...

  2. 【zabbix】zabbix3.0部署手册

    1.环境准备 Centos 6.X 2.数据库准备 默认centos yum源中mysql包的版本号为5.1,为了能使zabbix 3.0能达到最好的性能效果,安装最新版的mysql数据库. yum ...

  3. python优缺点小结

    优点:  1.语言简洁优美 例如去除了大括号,写法简单,写法更接近于英语,其他语言几十上百行的代码,十来行就能解决,而且还好看 2.跨平台,window.linux.mac通用 3.排行高,社区完善 ...

  4. TCP/IP协议数据包文件PCAP分析器

    一.设计原理 1.PCAP文件构成 参考http://blog.csdn.net/gulu_gulu_jp/article/details/50494909 PCAP文件由一个PCAP文件头和多个PC ...

  5. 9.2 NOIP提高组试题精解(2)

    9-18 fruit.c #include <stdio.h> #define MAXN 10000 int Queue1[MAXN], Queue2[MAXN]; void Insert ...

  6. MysqL的root用户不允许远程连接,只能通过PHPMYADMIN

    解决方法:1.改表法 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 &q ...

  7. Linux三种网络-vmware三种网络模式

    Host-Only 桥接 NAT VMware虚拟机三种联网方法及原理 一.Brigde——桥接:默认使用VMnet0 1.原理: Bridge 桥"就是一个主机,这个机器拥有两块网卡,分别 ...

  8. 分享知识-快乐自己:Excel快速导入Oracle 数据库

    需求: oracle 数据库有一个student表,现有一个excel表:student.xlsx,需导入oracle数据库student表中. student表的拥有者是c##MLQ1  密码为:x ...

  9. Unity 摄像机旋转初探

    接触打飞机的游戏时都会碰见把摄像机绕 x 轴顺时针旋转 90°形成俯瞰的视角的去看飞船.也没有多想,就感觉是坐标系绕 x 轴旋转 90°完事了.但是昨天用手比划发一下发现不对.我就想这样的话绕 x 轴 ...

  10. codeforces 706C C. Hard problem(dp)

    题目链接: C. Hard problem time limit per test 1 second memory limit per test 256 megabytes input standar ...