先上成品图
image
本次项目搭建参考了: SpringBoot - 多模块项目的搭建,并在他的基础上增加了mybatis以及layui项目.
本项目在码云上, 如有需要请点传送门
1. 搭建父工程
1. 创建一个基础的spring lnitializr项目,父工程中不需要添加任何依赖
image
2. 删除除了.idea,.iml,以及pom.xml文件之外的所有文件
image
2. 创建子模块
创建五个子模块,包括common,controller,dao,service,view(前端界面)
1. 在项目上右键new --> moudle,和父工程一样,新建一个spring lnitializr项目,注意group要一样,把五个子模块全部新建出来.
image
把子模块中的mvnw,mvnw.cmd文件夹,.mvn,HELP.md全部删除
src中,删除所有test(现在不删除无法使用maven install,蹲一手大神),删除除了controller外的所有启动类和application配置文件.
修改父pom文件:
(1). 修改父pom的打包类型为pom
(2). 声明多个子模版
(3). 添加版本说明
org.springframework.boot
spring-boot-starter-parent
2.4.0
com.bysj
father
0.0.1-SNAPSHOT
father
father
pom
common
dao
service
controller
view
1.8
UTF-8
com.bysj
dao
0.0.1-SNAPSHOT
com.bysj
common
0.0.1-SNAPSHOT
com.bysj
service
0.0.1-SNAPSHOT
com.bysj
controller
0.0.1-SNAPSHOT
修改commnon的pom.xml文件
(1). 继承父项目
(2). 添加lombok依赖(嗯...我还不清楚它的作用,明天再去学习下)
com.bysj
father
0.0.1-SNAPSHOT
com.bysj
common
0.0.1-SNAPSHOT
entity
公共类
1.8
org.projectlombok
lombok
1.18.6
6. 修改dao的pom.xml文件
(1). 继承父工程
(2). 添加数据库依赖
(3). 添加mybatis依赖
(4). 添加连接池依赖
com.bysj
father
0.0.1-SNAPSHOT
1.8
com.bysj
common
org.springframework.boot
spring-boot-starter-data-jpa
mysql
mysql-connector-java
com.alibaba
druid
1.1.9
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
修改service文件
(1). 继承父工程
(2). 依赖dao工程
修改controller文件
(1). 继承父工程
(2). 依赖service工程
(3). 添加web支持
(4). 注意这个plugins,除了controller外其他pom.xml都要删掉
(5). 打包方式为war
com.bysj
father
0.0.1-SNAPSHOT
com.bysj
controller
0.0.1-SNAPSHOT
controller
控制类
war
1.8
com.bysj
service
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
修改view的pom.xml文件
(1). 这个不需要声明父工程
(2). 打包方式为war.
war
org.apache.tomcat.maven
tomcat6-maven-plugin
/
80
UTF-8
移动启动类所在的包,放到最外层的com.bysj包下
在controller的main文件夹下新建文件夹"webapp"-->点击file-->点击project structure-->modules-->选择controller-->点击+-->选择web,把位置都设置在webapp目录上
image
按照上一个步骤,把view也配置好,直到webapp文件夹上出现一个小蓝点
image
3. 配置spring boot
在controller的resources下找到application.propertise(如果前面做的都对那么项目里面应该只有这一个配置文件)
(1). 配置数据库链接
(2). 配置mybatis
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/bysj?serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=*********
spring.jpa.show-sql=true
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
# mybatis
mybatis.type-aliases-package=com.bysj.entity
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
4. 开始编码测试spring boot和mybaatis是否正常
根据目录新建以下文件(中途user和Book弄混了,凑合看)
image
Book.java
public class Book {
private Integerid;
private Stringname;
private Stringauthor;
private Floatprice;
get/set/构造方法;
}
BookMapper
public interface BookMapper {
/**
* 获取所有用户
* @return
*/
List getBooks();
}
BookMapper.xml
SELECT* FROM book;
UserService.java
@Service
public class UserService {
@Autowired
private BookMapperuserMapper;
public ListgetUsers() {
return userMapper.getBooks();
}
}
UserController.java
@RestController
public class UserController {
@Autowired
private UserServiceuserService;
@GetMapping("/users")
public Listlists() {
return userService.getUsers();
}
}
最后ControllerApplication.java中还要加上MapperScan
@SpringBootApplication
@MapperScan("com.bysj.dao.mapper")
public class ControllerApplication {
public static void main(String[] args) {
SpringApplication.run(ControllerApplication.class, args);
}
}
如果一切顺利,那么到这里在游览器中输入localhost:8080/users就会出现数据了
image
5. 在view中集成layui
这里使用的是WeAdmin,感兴趣的可以去看看;
(1). 删除view的main下java和resources中的所有文件,然后把weadmin的文件全部复制到webapp下.
(2). 修改webapp/WEB-INF/web.xml,新增以下内容
login.html
(3). 点击IDEA右侧的maven,对项目进行构建
image
(4). 如果一切正常,那么就可以在运行view了
image
image
问题:
1. Errors: BysjBaseApplicationTests » IllegalState Unable to find a @SpringBootConfigurat
注意,所有的模块中只有controller的pom.xml中有spring-boot-maven-plugin这个plugin
2. [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource
请检查controller中配置文件是否有汉字,已经被注释了也不行,需要删掉
感谢看到这里,么么哒