一、新建一个简单的maven父子项目结构
1、新建maven父项目com.test.parent,在父项目中除pom文件以外的目录可全部删除。
2、修改父项目pom文件,并在Modules中添加两个子项目。admin为控制层、service为逻辑层。
此处在创建子项目时,因为此项目只做为提供接口所用,选择的子项目都是普通的maven项目,若需引入页面显示层则需再添加一个web子项目,此处不再赘述。
3、修改子项目com.test.admin中的pom文件,将com.test.service引入。
若到此处项目显示有错误,使用maven update即可。
二、使项目项目能够启动
1、修改父项目com.test.parent中的pom文件,引入spring boot相关依赖,这里我选用的spring boot版本为1.4.1。
具体如下:
4.0.0
com.test.parent
com.test.parent
0.0.1-SNAPSHOT
pom
com.test.parent
http://maven.apache.org
UTF-8
org.springframework.boot
spring-boot-starter-parent
1.4.1.RELEASE
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.1.1
org.springframework.boot
spring-boot-devtools
true
org.springframework
spring-context-support
com.test.admin
com.test.service
2.在com.test.admin中新增目录并增加启动类等
TestApplication.java(此处还没有引入数据库配置,需要在@EnableAutoConfiguration中添加exclude = {DataSourceAutoConfiguration.class},在引入数据库后可去除)
/**
* Copyright(c) Foresee Science & Technology Ltd.
*/
package com.test.admin;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
@SpringBootApplication(scanBasePackages={"com.test.*"})
@ServletComponentScan
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(testApplication.class, args);
}
}
MainController.java
/**
* Copyright(c) Foresee Science & Technology Ltd.
*/
package com.test.admin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MainController {
private final static Logger LOG = LoggerFactory.getLogger(MainController.class);
@RequestMapping("/")
@ResponseBody
String home() {
System.out.println("新的springboot项目启动成功!");
return "新的springboot项目启动成功!";
}
}
3.新建resources/config目录,并添加配置文件application.properties
application.properties(数据库连接配置,启动参数配置均在此文件中,此处只配置基本启动参数,数据库配置会在后面引入)
server.context-path=/test
server.port=6633
server.session-timeout=30
server.tomcat.uri-encoding=utf-8
logging.level.root=INFO
在浏览器输入网址访问(如有需要可先执行maven update)
三、配置mysql数据库实现一个简单接口
1.修改com.test.parent中的pom文件,引入mysql相关依赖。
2.修改配置文件application.properties,配置数据库参数
在子项目com.test.service中添加如下图的resources目录并添加配置文件,将地址添加到配置中。
application.properties
spring.datasource.platform=mysql
spring.datasource.url=jdbc:mysql://localhost:3306/ocsp?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=ocsp123
spring.datasource.driverClassName=com.mysql.jdbc.Driver
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
到此、数据库已配置好,接下来我们来配置日志文件后再尝试实现一个接口。
3.配置日志输出
在config目录下新建日志输出配置文件后,在application.properties中指定日志输出配置文件路径并设置日志等级。
一下是我简单配置的lockback.xml文件详细
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{100} %line- %msg%n
UTF-8
${ocsp.outter.root:- }logs/%d{yyyy-MM-dd}.log
30
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{100} %line- %msg%n
UTF-8
接下来我们来实现一个简单的接口。
3.在子项目com.test.service中,建立entity、mapper、impl包。
在四个包中分别添加接口(IUserSevice)、接口实现类(UsersServiceImpl)、实体类(UserEntity)、(UserMapper),
以下只列出UsersServiceImpl、UserMapper。
UsersServiceImpl.java
package com.test.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.test.entity.UserEntity;
import com.test.mapper.UserMapper;
import com.test.service.IUserService;
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
/**
* 根据id查询用户
*/
@Override
public String queyrUserById(String s) {
UserEntity user = userMapper.getOne((long) 1);
return user.getUserName();
}
}
UserMapper.java
package com.test.mapper;
import com.test.entity.UserEntity;
public interface UserMapper {
UserEntity getOne(Long id);
}
接下来在mybatis/mapper中添加mapper.xml文件。
UserMapper.xml ,注意修改nanamespace和BaseResultMap映射类的路径
id, userName, passWord,nick_name,user_sex
在启动类中加上注解
在MainController中注入Service并新建一个test接口来调用方法。
浏览器访问
注意:
若启动项目时报以上错误,请注意以下几点:
1、mapper文件路径是否正确。
2、在@EnableAutoConfiguration后,是否添加了exclude = {DataSourceAutoConfiguration.class},若有添加,尝试删除。
3、在接口实现类中是否继承了SqlSessionDaoSupport,若有继承,尝试删除此继承。