现在好多公司都在使用springboot作为框架,闲暇时间自己也搭建了一个,搭建期间也遇到许多问题,搭建过程就与大伙分享一下。
在这里使用idea创建springboot工程,因为idea里深度集成了对springboot项目的支持,你直接不停的next到最后,它就会帮你创建出一个springboot工程。

2.创建项目,填写项目名称

3.选择项目依赖,也可pom引入,(idea版本不同,依赖名称可能有所改变),然后一路Next

1.连接数据库需要mysql驱动,mybatis要用mybatis-spring-boot-starter,创建项目时已经引入过依赖

2.创建项目pom文件自动生成信息
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
创建springboot会在src->main->resource目录下生产空白文件application.properties文件,后缀名可修改为yml。
#指定跳转的前缀 spring.thymeleaf.prefix=classpath:/templates/ # 指定跳转页面的后缀 spring.mvc.view.suffix=.html #加载静态资源 spring.mvc.static-path-pattern=/static/** #jdbc连接 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mysql?useUnicode = true&characterEncoding = utf-8&useSSL = false&serverTimezone=GMT spring.datasource.username=root spring.datasource.password=admin #代表对应的entity所在路径 mybatis.typeAliasesPackage=com.app.entity.* #代表Mapper所在的位置。 mybatis.mapper-locations=classpath*:/mapper/*.xml
1.配置maven的settings.xml文件


2.点击File->settings->Build,Execution,Deployment->Build Tools->Maven

3.如果pom文件version里出现红色,这是因为我们引入pom时,这些版本的jar在本地maven仓库还没有,而其它pom里的version没有显示红色,是因为之前的项目用到了这个版本,已经被下载到本地Maven仓库里了。
因此我们需要把本地没有的jar下载到本地仓库,右键pom.xml弹出菜单,选择Maven,弹出菜单选择reimport。
更新可能会有些小慢..

红色已经消失后,可以在repository仓库中可以看到已下载版本(可以不用去看,只要pom红色消失就可以了...)

1.上面准备工作已经做完,我们就来测试下试试,在根目录创建一个controller的包,在包中创建一个Java类。
controller访问login.html页面
@Controller
@RequestMapping(value="/tes")
public class Test {
@RequestMapping(value="/log")
public String tests(){
return "login";
}
}
运行后访问地址发现报错404,找不到路径

我看了配置和访问路径都正确,原来如果需要使用templates,thyleaf模版,首先Spring boot项目pom文件里需要添加依赖,这样才能找到templates下面的*.html文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
引入依赖后,右键pom.xml弹出菜单,选择Maven,弹出菜单选择Reimport,再次访问http://localhost:8080/tes/log地址

2.页面访问测试完成,下面可通过访问数据库查询用户数据,千万不要忘记该加的注解一定要加上。
1.entity层
package com.app.entity;
import java.io.Serializable;
public class User implements Serializable {
private Integer id;
private String name;
private String password;
public User() {}
public User(int id, String name,String password) {
this.id = id;
this.name = name;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name=‘" + name + ‘\‘‘ +
", password=‘" + password + ‘\‘‘ +
‘}‘;
}
}
2.controller层
package com.app.controller;
import com.app.entity.User;
import com.app.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value="/tes")
public class Test {
@Autowired
private UserService userService;
@RequestMapping(value="/log")
public String tests(){
return "login";
}
@RequestMapping(value="/data")
@ResponseBody
public User test2(){
return userService.findUser();
}
}
3.service接口层
package com.app.service;
import com.app.entity.User;
public interface UserService {
public User findUser();
}
4.service实现层
package com.app.servierimpl;
import com.app.dao.UserDao;
import com.app.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.app.entity.User;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User findUser() {
return userDao.findUser();
}
}
5.dao接口层
package com.app.dao;
import com.app.entity.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao {
public User findUser();
}
6.mapper层,在resources下创建mapper文件,在mapper里添加UserMapper.xml文件增加一个finduser的SQL查询语句。

UserMapper.xml内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.app.dao.UserDao">
<resultMap id="BaseResultMap" type="com.app.entity.User">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="password" jdbcType="VARCHAR" property="password" />
</resultMap>
<sql id="BaseColumnList">
id, name,password
</sql>
<select id="findUser" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="BaseColumnList" />
from test
</select>
</mapper>
找到启动类SpringboottestApplication运行后发现报错org.springframework.beans.factory.UnsatisfiedDependencyException,提示没有扫描到mapper包,那是mapper需要手动在启动类中加入:
package com.app;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.app.dao")
public class SpringboottestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringboottestApplication.class, args);
}
}

加入后在浏览器输入http://localhost:8080/tes/data,再次运行结果后成功

原文:https://www.cnblogs.com/zh01/p/11386924.html