SSM权限管理系统+权限认证 第一章
项目准备
1. idea使用maven创建web项目 (day59-permission)
2. 将base项目下载到自己项目中,然后打成jar包放在自己的maven仓库中
3. pom.xml到依赖 (从properties 直接到 dependencies 覆盖就行了)
<properties>
<!-- Spring版本号 -->
<spring.version>5.1.5.RELEASE</spring.version>
</properties>
<dependencies>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
<!-- Spring相关包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- AOP相关包 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.0</version>
</dependency>
<!-- MySQL相关包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
<!-- 日志相关包 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.5</version>
</dependency>
<!--解决Spring使用slf4j输出日志与log4j冲突的问题-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.13</version>
</dependency>
<!-- 单元测试相关包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- lombox -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
<!-- 导入thymeleaf依赖包-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<!-- thymeleaf和Spring整合的依赖-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<!-- spring整合mybatis-plus -->
<dependency>
<groupId>com.wpj</groupId>
<artifactId>base</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
4. 准备配置文件 (前几章或源码有)
spring-datasource.xml
spring-mybatis.xml
spring-tx.xml
spring-context.xml
jdbc.properties
log4j.properties
web.xml
5. 创建包结构,bean,mapper,service,controller
mapper
package com.wpj.mapper;
import com.baomidou.mybatisplus.mapper.*;
import com.wpj.bean.*;
/**
* ClassName: IUserMapper
* Description:
*
* @author JieKaMi
* @version 1.0
* @date: 2020\1\11 0011 17:40
* @since JDK 1.8
*/
public interface IUserMapper extends BaseMapper<User> {
}
service
package com.wpj.service;
import com.wpj.baseservice.*;
import com.wpj.bean.*;
/**
* ClassName: IUserService
* Description:
*
* @author JieKaMi
* @version 1.0
* @date: 2020\1\11 0011 17:30
* @since JDK 1.8
*/
public interface IUserService extends IBaseService<User> {
}
serviceImpl
package com.wpj.service.impl;
import com.baomidou.mybatisplus.mapper.*;
import com.wpj.baseservice.impl.*;
import com.wpj.bean.*;
import com.wpj.mapper.*;
import com.wpj.service.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;
/**
* ClassName: UserServiceImpl
* Description:
*
* @author JieKaMi
* @version 1.0
* @date: 2020\1\11 0011 17:38
* @since JDK 1.8
*/
@Service
public class UserServiceImpl extends BaseServiceImpl<User> implements IUserService {
@Autowired
private IUserMapper iUserMapper;
protected BaseMapper<User> getBaseMapper() {
return iUserMapper;
}
}
6. 测试环境
package com.wpj.service.impl;
import com.wpj.bean.*;
import com.wpj.service.*;
import org.junit.*;
import org.junit.runner.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.test.context.*;
import org.springframework.test.context.junit4.*;
import java.util.*;
/**
* ClassName: TestProject
* Description:
*
* @author JieKaMi
* @version 1.0
* @date: 2020\1\11 0011 17:44
* @since JDK 1.8
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value={
"classpath:spring-datasource.xml",
"classpath:spring-mybatis.xml",
"classpath:spring-tx.xml",
"classpath:spring-context.xml"})
public class TestProject {
@Autowired
private IUserService iUserService;
@Test
public void addUser(){
User user = new User();
user.setUsername("admin");
user.setPassword("admin");
user.setAge(22);
user.setSex(0); // 0 男 1 女
user.setEmail("wpj@qq.com");
user.setBirthday(new Date());
int result = iUserService.add(user);
System.out.println("result: " + (result == 1));
}
}
7. 创建spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 开启包扫描-->
<context:component-scan base-package="com.wpj" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 开启注解驱动-->
<mvc:annotation-driven/>
<!-- 配置thymeleaf的视图解析器-->
<bean id="templateResolver" class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver"> <!--前缀配置-->
<property name="prefix" value="/application/"></property> <!--后缀配置-->
<property name="suffix" value=".html"></property> <!--模板类型-->
<property name="templateMode" value="HTML"></property> <!--不使用缓存-->
<property name="cacheable" value="false"></property> <!--编码类型-->
<property name="characterEncoding" value="UTF-8"></property>
</bean>
<!--模板引擎配置-->
<bean id="templateEngine" class="org.thymeleaf.spring5.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver"></property>
</bean>
<!--视图处理器-->
<bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine"></property>
<property name="characterEncoding" value="UTF-8"></property>
</bean>
<!-- 静态资源文件处理-->
<mvc:default-servlet-handler/>
</beans>
8. 在webapp下创建application/user/userList.html
9. 写controller
package com.wpj.web.controller;
import com.baomidou.mybatisplus.plugins.*;
import com.wpj.bean.*;
import com.wpj.service.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;
import org.springframework.ui.*;
import org.springframework.web.bind.annotation.*;
/**
* ClassName: UserController
* Description:
*
* @author JieKaMi
* @version 1.0
* @date: 2020\1\12 0012 21:35
* @since JDK 1.8
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService iUserService;
@RequestMapping("/getUserPage")
public String getUserPage(Page<User> page, ModelMap map){
iUserService.getPage(page);
map.put("page", page);
return "user/userList";
}
}