前端框架这几年势头很猛,jsp不知不觉已经成了老技术,最近研究了下vue,springboot+vue+mybatis轻量级开发是个不错选择。
试着在idea中搭建springboot+maven:
1、 通过idea搭建还是比较简单的,可以直接选择模型Spring Initializr(eclipse的话可以去spring官网快速搭建boot项目,导入即可),jdk选择1.8
2、接下来进行Dependencies的选择,我们这里选择了Web中的Starter,SQL中的mysql、jdbc、mybatis。(这些只是提前进行pom文件中的依赖添加,可以创建好项目后按需添加,不必纠结)
3、项目初步已完成。
3.1、进入项目后首先进行pom文件的完善与更新。下面是我的pom文件:(maven仓库以及远程仓库等的添加与配置省略)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lyf</groupId>
<artifactId>bootvue</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>bootvue</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<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>
<version>5.1.44</version>
<!--<scope>runtime</scope>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- spring-boot:run 中文乱码解决 -->
<configuration>
<fork>true</fork>
<!--增加jvm参数-->
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<dependencies>
<!--<dependency>
<groupId>com.Dm</groupId>
<artifactId>sdk</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}/lib/Dm7JdbcDriver16.jar</systemPath>
</dependency>-->
<!--<dependency>
<groupId>com.csii</groupId>
<artifactId>dm</artifactId>
<version>1.0</version>
</dependency>-->
<dependency>
<groupId> mysql</groupId>
<artifactId> mysql-connector-java</artifactId>
<version> 5.1.39</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<phase>package</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!--允许移动生成的文件 -->
<verbose>true</verbose>
<!-- 是否覆盖 -->
<overwrite>true</overwrite>
<!-- 自动生成的配置 -->
<configurationFile>
src/main/resources/generator/mybatis-generator.xml</configurationFile>
</configuration>
</plugin>
</plugins>
<!--<resources>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>BOOT-INF/classes/</targetPath>
</resource>
</resources>-->
</build>
</project>
3.2、然后是简单的访问类编写。
@RestController
public class ActoinController {
@RequestMapping(value = "/here",method = RequestMethod.GET)
@ResponseBody
public String In(){
return "come on";
}
}
运行BootvueApplication类等待项目构建完成访问即可。
如果pom中添加了sql,则需在配置文件中配置驱动,这里采用的是yml写法:
application.yml:
spring:
profiles:
active: dev
application-dev.yml:
server:
port : 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/bootvue?useUnicode=true&characterEncoding=utf8&useSSL=false
#url: jdbc:dm://localhost:5236/bootvue?useUnicode=true&characterEncoding=utf8&useSSL=false
#username: SYSDBA
username: root
password: 12345
driver-class-name: com.mysql.jdbc.Driver
#driver-class-name:dm.jdbc.driver.DmDriver
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.lyf.bootvue.pojo
logging:
level:
com:
example:
mapper : debug
如果pom中添加了mybatis,还需进行mybatis的配置:
mybatis-generator:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/bootvue" userId="root" password="12345">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.lyf.bootvue.pojo" targetProject="src/main/java">
<property name="user" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.lyf.bootvue.mapper" targetProject="src/main/java">
<property name="userMapper" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="com.lyf.bootvue.dao" targetProject="src/main/java">
<property name="userDao" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名-->
<table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
4、简单的项目初始化已完成。接下来我们进行数据库的深层次交互。
4.1、首先进行目录的创建与规范化。
这里需要注意以下两个坑:
(1)切记mapper的xml文件需放在resources中。
(2)controller中需要使用@RestController注解,@Controller不行
其他的就跟SSM框架差不多了,就是springboot对jsp不是很友好。
5、基本上就是这些。接下来附上其他代码方便日后ctrlCV:
userMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lyf.bootvue.dao.UserMapper">
<resultMap id="BaseResultMap" type="com.lyf.bootvue.pojo.User">
<result column="userName" jdbcType="VARCHAR" property="userName" />
<result column="passWord" jdbcType="VARCHAR" property="passWord" />
</resultMap>
<select id="selectUser" resultType="java.util.List">
select * from user
</select>
</mapper>
UserSqlProvider.java: (此文件在此无用,保留一下)
public class UserSqlProvider {
public String insertSelective(User record) {
SQL sql = new SQL();
sql.INSERT_INTO("user");
if (record.getUsername() != null) {
sql.VALUES("username", "#{username,jdbcType=VARCHAR}");
}
if (record.getPassword() != null) {
sql.VALUES("password", "#{password,jdbcType=VARCHAR}");
}
return sql.toString();
}
}
UserMapper.java:
public interface UserMapper {
List<User> selectUser();
}
UserService.java:
@Service(value="userService")
public class UserService implements UserMapper{
private static final Logger LOG = LoggerFactory.getLogger(UserService.class);
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectUser() {
return userMapper.selectUser();
}
}
UserController.java:
@RestController
@RequestMapping(value="/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value="/getUser")
public String getUser(){
List userList = userService.selectUser();
return userList.toString();
}
}
6、over。
**关于vue的整合下篇。