前言

差不多两年前,那个时候我准备要做毕业设计了,才第一次知道java有框架这种东西,在网上找了好多SSM的教程,那会儿真的是Spring+SpringMVC+MyBatis搭建的,印象极深的是还要写一堆配置文件,也不知道为什么写,报错了也不知道哪里错,根本不像现在有SpringBoot这么简单。

后来还好在博客园上看到了一位前辈的SSM框架搭建过程,虽然也是一堆问题,但前辈还是很有耐心地解答,甚至加qq帮我看项目错在哪里,很是热心。

而今两年过去,我自己也成了能写教程的人了,希望这个教程能帮到你吧。

这个教程的目的是教会你初步使用SpringBoot。

如果你是想系统的学习SpringBoot,那么这篇文章可能帮不了你太多。

如果你是现在马上要用到,那么可以看下这篇文章,会讲最基本的搭建和使用方法,每一步都会讲为什么,力求用最少的步骤让你懂搭建和使用SpringBoot。

项目的搭建

项目是使用Maven和eclipse搭建的。

网上相关的教程多是使用idea的,但使用eclipse的其实也不少,自己更偏爱eclipse,所以这里会使用eclipse,搭建思路和idea是一样的,差不了多少。

Maven

对Maven有了解的朋友可以跳过这部分了。

Maven的作用

Maven的作用是,让用户在项目中的pom.xml写下某个jar包的名字(又叫依赖),项目就可以自己联网去找对应的jar包,省去了开发者一个一个去找jar下载的功夫,因此使用一定要联网。包括SpringBoot,说到底也是一堆jar包的集合,因此我们可以新建一个Maven项目来继承SpringBoot项目,这样我们的项目就是SpingBoot框架了,接下来的做法便是这样。

Maven的安装

一般而言,新的eclipse都已经集成了maven,如果没有,网上有很多Maven安装的教程。

新建Maven项目

在Package Explorer下右键,选New→other;

在弹窗中找到Maven文件夹,点开,选择里面的Maven Project,点击next

创建一个简单的Maven项目

SpringBoot在这里是作为父项目被我们的项目继承;

创建好的项目目录如下:

添加Maven依赖

打开pom.xml,添加如下依赖(这个依赖是SpringBoot的启动器,tomcat内置在里面),这里写下并且保存之后,eclipse便会自己联网去找spring-boot-starter-web这个jar包下载,并放在下图的Maven Dependenices文件夹中,之后如果要添加什么jar包,可以百度这个jar包的依赖,在dependencies这个标签内写下即可。

<dependencies>
<!--快速整合springmvc和tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

添加前



添加后

使用示例

项目到这里搭好了第一步,可以进行最低限度的访问,接下来写点代码来访问

编写控制类



贴一下代码

package com.TandK.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class IndexController { @RequestMapping("/hello")
@ResponseBody
public String sayHello(){
return "hello, SpringBoot!";
}
}

编写SpringBoot的启动类

package com.TandK;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class App { public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}

运行项目

直接运行该启动类

控制台正常打印无报错,打开浏览器访问,显示刚刚控制类方法里写的数据。注意SpringBoot默认端口是8080(不过这个也可以改的,在SpringBoot配置文件里改,这个后续会说)。

注意点

启动类即App可以和Controller类放在同一级,也可以放在Contoller类上一层,但不能放在和Controller包平级的包下,否则项目会正常启动,但页面却访问不到。



页面访问不到就会这样

SpringBoot的用法

上面只是做了简单的访问测试,要作为一个完整的web项目,我们需要

1.解析用户发出的请求

2.拿到数据库中的数据

3.进行数据的运算

4.将数据呈现在用户面前。

那么按照这个思路行动,除了SpringBoot的启动类(上文中的App)我们会在src/main/java下建下面几个包

  • dao:又叫mapper,我们会用mybatis在此层进行与数据库的交互
  • service:处理数据的逻辑和校验,负责dao和controller这两层的连接和他们之间的数据处理,一般来说我们有什么数据的运算会写在这里,有的会建一个service.impl包,service包下写接口,service.impl下对应的类来是实现接口。
  • controller:又叫web,视图处理和接口暴露的地方,可以看到上文中是在controller中根据用户访问的连接,然后跳转到对应的页面将对应的数据显示给客户看
  • pojo:也叫do,java中的对象写在这个包里,主要是和数据库的表对应,通常来说是要和数据库表中的字段完全一致的。

在src/main/resources下会建立一个application.properties,是SpringBoot的全局配置文件,因此文件名不要写错,后续有什么配置都会在里面写。

如果看不懂,往下跟着做一遍就懂了。但建议下面的做了一遍之后,再回来看看这部分。

整合MyBatis-Plus

介绍

使用MyBatis-Plus可以无须定义sql语句就能够完成数据库的增删改查操作。但是它不是万能,有些时候还是需要去定义的sql语句。

MyBatis-Plus官网

添加MyBatis-Plus的相关依赖

<!--整合mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!--alibaba的数据连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>

注意,这里的驱动(即mysql-connector-java)要看对应的mysql版本,我的mysql是8以上的,所以mysql驱动要用8.0.11的。

如果你的mysql是5.X的,建议去找5.X的mysql驱动。我之前用的mysql驱动是5.X的,就会报错,因此这块要注意。

添加数据源

在application.properties中配置数据源DataSource,这里的配置根据自己的实际情况写

# springboot数据源初始化
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=你的数据库用户名
spring.datasource.password=你的数据库密码

访问数据库中的数据

比如我在ssm的数据库中有一个user表,数据如下

pojo包

要在pojo包中写一个User类,字段与数据库完全一致,生成各自的setter/getter方法

dao层

在dao包下新建一个UserDao的接口,专门用来数据库中的User表进行增删改查,要继承BaseMapper。

package com.TandK.dao;

import com.TandK.pojo.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface UserDao extends BaseMapper<User>{ }

这里记得要回到App(SpringBoot启动类)中添加一个注解,告诉SpringBoot,Dao层的包名。

service层

在service包下定义一个IUserService的接口,然后在里面定义一个根据用户id查询用户信息的方法。

package com.TandK.service;

import com.TandK.pojo.User;

public interface IUserService {

	/**
* 根据id查询用户信息
* @param id
* @return
*/
public User getUser(Integer id); }

在service.impl包下定义对应的实现类UserServiceImpl。

package com.TandK.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.TandK.dao.UserDao;
import com.TandK.pojo.User;
import com.TandK.service.IUserService; @Service
public class UserServiceImpl implements IUserService{ @Autowired
private UserDao userDao; @Override
public User getUser(Integer id) {
// TODO Auto-generated method stub
return userDao.selectById(id);
} }
  • @Service是告诉SpringBoot这是一个service层的实现类;
  • 写上@Autowired注解后SpringBoot会自动根据类型去注入对象,这就是Spring中IOC(控制反转的体现),即你不用自己去写private UserDao userDao = new UserDao();
  • 可以看到service层中维护着一个对应的Dao层对象,当需要什么数据直接用Dao层对象去数据库拿即可。

controller层

在Controller包下新建UserController类

package com.TandK.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.TandK.pojo.User;
import com.TandK.service.IUserService; @Controller
public class UserController { @Autowired
private IUserService userServiceImpl; @RequestMapping("/getUser")
@ResponseBody
public User getUser(Integer id){
return userServiceImpl.getUser(id);
}
}
  • 同样可以看到controller层中维护着一个对应的service层对象,当需要什么数据直接用service层对象去拿即可。

启动项目后访问

总结

教程到此结束,之后的使用基本照猫画虎,都差不多的,需要jar包去pom.xml下写对应的依赖,需要改什么配置就去application.properties里改,先百度一下写法,复制粘贴即可。

搭建过程只需做一次,之后的使用,除了添加jar包和改配置,多数情况下都是controller层调用service层,service层调用dao层,dao层连接数据库,然后逐层返回。这是最基本的使用。

SpringBoot入门 简单搭建和使用的更多相关文章

  1. springboot入门简单,深入难

    18年1月份的时候在腾讯课堂学习springboot.springcloud搭建微服务,老师告诉我们,springboot入门容易,深入难. 因为你必须东西SpringMVC.Spring.Mybat ...

  2. SSH入门简单搭建例子

    因为公司涉及项目使用SSH,为了解SSH搭建方式和运作原理,就自己搭建了一个. 采用尽量以最少的JAR包,搭建一个简单的struts2+spring+hibernate环境,希望像我这样的入门者都能理 ...

  3. springboot入门之一:环境搭建(续)

    在上篇博客中从springboot的入门到运行一个springboot项目进行了简单讲述,详情请查看“springboot入门之一”.下面继续对springboot做讲述. 开发springboot测 ...

  4. SpringBoot + Dubbo + zookeeper 搭建简单分布式服务

    SpringBoot + Dubbo + zookeeper 搭建简单分布式服务 详细操作及源码见: https://github.com/BillyYangOne/dubbo-springboot

  5. 简单springboot及springboot cloud环境搭建

    springboot使用特定的方式,简化了spring的各种xml配置文件,并通过maven或者gradle,完成所需依赖,使用springboot maven插件,可直接输出可运行的jar包,省去了 ...

  6. Spring Cloud 入门教程 - 搭建配置中心服务

    简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...

  7. 补习系列(1)-springboot项目基础搭建课

    目录 前言 一.基础结构 二.添加代码 三.应用配置 四.日志配置 五.打包部署 小结 前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了.抛开微服务.技术社区 ...

  8. SpringBoot入门基础

    目录 SpringBoot入门 (一) HelloWorld. 2 一 什么是springboot 1 二 入门实例... 1 SpringBoot入门 (二) 属性文件读取... 16 一 自定义属 ...

  9. Spring全家桶系列–[SpringBoot入门到跑路]

    //本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...

随机推荐

  1. 「IOI2017」西默夫 的一个另类做法

    我们发现如果我们有一个环套树的话,那么我们可以把这个环套树去掉每一条环上的边\(e\),问一遍有多少御道在这棵树上.假设删去\(e\)后答案为\(A_e\). 如果答案全部一样,那么说明环上的边都不在 ...

  2. 「TJOI / HEOI2016」求和 的一个优秀线性做法

    我们把\(S(i, j)j!\)看成是把\(i\)个球每次选择一些球(不能为空)扔掉,选\(j\)次后把所有球都扔掉的情况数(顺序有关).因此\(S(i, j)j! = i![x^i](e^x - 1 ...

  3. 题解-[国家集训队]Crash的数字表格 / JZPTAB

    题解-[国家集训队]Crash的数字表格 / JZPTAB 前置知识: 莫比乌斯反演 </> [国家集训队]Crash的数字表格 / JZPTAB 单组测试数据,给定 \(n,m\) ,求 ...

  4. Node第三方模块nodemon和nrm

    1.第三方模块nodemon nodemon是一个命令行工具,用以辅助项目开发. 在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐,这时,nodemon就可以来解决这个问题. ...

  5. 最近有安装了一次hadoop集群,NameNode启动失败,及原因

    最近有安装了一次hadoop集群,NameNode启动失败,查看日志,找到以下原因: 遇到的异常1: org.apache.hadoop.hdfs.server.common.Inconsistent ...

  6. Centos7下使用mail发送邮件

    首先检测相关服务是否已安装[root@ProxyServer ~]# rpm -qa|grep mail libreport-plugin-mailx-2.0.9-19.el6.x86_64 mail ...

  7. java、tomcat安装

    今天记录下如何安装java和tomcat,毕竟作为开发人员换电脑或重装系统后都是要装好这些环境的. java的安装: 1.下载sdk,官网地址:https://www.oracle.com/techn ...

  8. 使用Swiper快速实现3D效果轮播

    最近经常接到轮播图3D效果的需求, 特在此记录一下以备之后使用. 具体实现效果如下: 在这里介绍两种使用方式, 一种原生的html+php后端渲染, 一种是使用vue. 原生实现 引入 首先我们介绍原 ...

  9. proxySQL with SemiSync

    环境信息 hostname IP port role comm ms81 192.168.188.81 3399 master ms82 192.168.188.82 3399 slave ms83 ...

  10. Oracle 要慌了!华为终于开源了自家的 Huawei JDK——毕昇 JDK!

    没错,自阿里.腾讯之后,华为也终于开源了自家的 JDK--毕昇 JDK! 免费!免费!免费!!! Oracle 要慌了? 毕昇 JDK 毕昇 JDK 是华为内部 OpenJDK 定制版 Huawei ...