差很少两年前,那个时候我准备要作毕业设计了,才第一次知道java有框架这种东西,在网上找了好多SSM的教程,那会儿真的是Spring+SpringMVC+MyBatis搭建的,印象极深的是还要写一堆配置文件,也不知道为何写,报错了也不知道哪里错,根本不像如今有SpringBoot这么简单。java
后来还好在博客园上看到了一位前辈的SSM框架搭建过程,虽然也是一堆问题,但前辈仍是颇有耐心地解答,甚至加qq帮我看项目错在哪里,非常热心。mysql
而今两年过去,我本身也成了能写教程的人了,但愿这个教程能帮到你吧。web
这个教程的目的是教会你初步使用SpringBoot。spring
若是你是想系统的学习SpringBoot,那么这篇文章可能帮不了你太多。sql
若是你是如今立刻要用到,那么能够看下这篇文章,会讲最基本的搭建和使用方法,每一步都会讲为何,力求用最少的步骤让你懂搭建和使用SpringBoot。数据库
项目是使用Maven和eclipse搭建的。浏览器
网上相关的教程可能是使用idea的,但使用eclipse的其实也很多,本身更偏心eclipse,因此这里会使用eclipse,搭建思路和idea是同样的,差不了多少。tomcat
对Maven有了解的朋友能够跳过这部分了。springboot
Maven的做用是,让用户在项目中的pom.xml写下某个jar包的名字(又叫依赖),项目就能够本身联网去找对应的jar包,省去了开发者一个一个去找jar下载的功夫,所以使用必定要联网。包括SpringBoot,说到底也是一堆jar包的集合,所以咱们能够新建一个Maven项目来继承SpringBoot项目,这样咱们的项目就是SpingBoot框架了,接下来的作法即是这样。mybatis
通常而言,新的eclipse都已经集成了maven,若是没有,网上有不少Maven安装的教程。
在Package Explorer下右键,选New→other;
在弹窗中找到Maven文件夹,点开,选择里面的Maven Project,点击next
建立一个简单的Maven项目
SpringBoot在这里是做为父项目被咱们的项目继承;
建立好的项目目录以下:
打开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!"; } }
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包平级的包下,不然项目会正常启动,但页面却访问不到。
页面访问不到就会这样
上面只是作了简单的访问测试,要做为一个完整的web项目,咱们须要
1.解析用户发出的请求
2.拿到数据库中的数据
3.进行数据的运算
4.将数据呈如今用户面前。
那么按照这个思路行动,除了SpringBoot的启动类(上文中的App)咱们会在src/main/java下建下面几个包
在src/main/resources下会创建一个application.properties,是SpringBoot的全局配置文件,所以文件名不要写错,后续有什么配置都会在里面写。
若是看不懂,往下跟着作一遍就懂了。但建议下面的作了一遍以后,再回来看看这部分。
使用MyBatis-Plus能够无须定义sql语句就可以完成数据库的增删改查操做。可是它不是万能,有些时候仍是须要去定义的sql语句。
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包中写一个User类,字段与数据库彻底一致,生成各自的setter/getter方法
在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包下定义一个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); } }
private UserDao userDao = new UserDao();
了在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); } }
启动项目后访问
教程到此结束,以后的使用基本照猫画虎,都差很少的,须要jar包去pom.xml下写对应的依赖,须要改什么配置就去application.properties里改,先百度一下写法,复制粘贴便可。
搭建过程只需作一次,以后的使用,除了添加jar包和改配置,多数状况下都是controller层调用service层,service层调用dao层,dao层链接数据库,而后逐层返回。这是最基本的使用。