现在好多公司都在使用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