当前位置:  首页>> 技术小册>> Java必知必会-Maven高级

1.2.1 maven-ssm

  • pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.xudaxian</groupId>
  7. <artifactId>maven-ssm</artifactId>
  8. <version>1.0</version>
  9. <!-- 定义该工程用于进行构建管理 -->
  10. <packaging>pom</packaging>
  11. <!-- 管理的工程列表 -->
  12. <modules>
  13. <!-- 具体的工程名称 -->
  14. <module>maven-ssm-pojo</module>
  15. <module>maven-ssm-dao</module>
  16. <module>maven-ssm-service</module>
  17. <module>maven-ssm-web</module>
  18. </modules>
  19. <properties>
  20. <maven.compiler.source>11</maven.compiler.source>
  21. <maven.compiler.target>11</maven.compiler.target>
  22. </properties>
  23. <!-- 声明此处进行依赖管理 -->
  24. <dependencyManagement>
  25. <!-- 具体的依赖 -->
  26. <dependencies>
  27. <!-- 自定义工程依赖 -->
  28. <dependency>
  29. <groupId>com.xudaxian</groupId>
  30. <artifactId>maven-ssm-service</artifactId>
  31. <version>1.0</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>com.xudaxian</groupId>
  35. <artifactId>maven-ssm-pojo</artifactId>
  36. <version>1.0</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>com.xudaxian</groupId>
  40. <artifactId>maven-ssm-dao</artifactId>
  41. <version>1.0</version>
  42. </dependency>
  43. <!-- spring的环境 -->
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-context</artifactId>
  47. <version>5.1.9.RELEASE</version>
  48. </dependency>
  49. <!-- Spring整合Junit -->
  50. <dependency>
  51. <groupId>org.springframework</groupId>
  52. <artifactId>spring-test</artifactId>
  53. <version>5.1.9.RELEASE</version>
  54. </dependency>
  55. <!-- mybatis的环境 -->
  56. <dependency>
  57. <groupId>org.mybatis</groupId>
  58. <artifactId>mybatis</artifactId>
  59. <version>3.5.3</version>
  60. </dependency>
  61. <!--mysql环境-->
  62. <dependency>
  63. <groupId>mysql</groupId>
  64. <artifactId>mysql-connector-java</artifactId>
  65. <version>8.0.25</version>
  66. </dependency>
  67. <!--spring整合jdbc-->
  68. <dependency>
  69. <groupId>org.springframework</groupId>
  70. <artifactId>spring-jdbc</artifactId>
  71. <version>5.1.9.RELEASE</version>
  72. </dependency>
  73. <!--spring整合mybatis-->
  74. <dependency>
  75. <groupId>org.mybatis</groupId>
  76. <artifactId>mybatis-spring</artifactId>
  77. <version>2.0.3</version>
  78. </dependency>
  79. <!--druid连接池-->
  80. <dependency>
  81. <groupId>com.alibaba</groupId>
  82. <artifactId>druid</artifactId>
  83. <version>1.1.16</version>
  84. </dependency>
  85. <!--分页插件坐标-->
  86. <dependency>
  87. <groupId>com.github.pagehelper</groupId>
  88. <artifactId>pagehelper</artifactId>
  89. <version>5.1.2</version>
  90. </dependency>
  91. <dependency>
  92. <groupId>org.springframework</groupId>
  93. <artifactId>spring-webmvc</artifactId>
  94. <version>5.1.9.RELEASE</version>
  95. </dependency>
  96. <dependency>
  97. <groupId>com.fasterxml.jackson.core</groupId>
  98. <artifactId>jackson-databind</artifactId>
  99. <version>2.9.0</version>
  100. </dependency>
  101. </dependencies>
  102. </dependencyManagement>
  103. <!--
  104. 可以在子工程中定义依赖关系,无需声明依赖版本,版本将参考父工程中依赖的版本。
  105. 当然,我直接定义在父工程了。
  106. -->
  107. <dependencies>
  108. <!-- spring的环境 -->
  109. <dependency>
  110. <groupId>org.springframework</groupId>
  111. <artifactId>spring-context</artifactId>
  112. </dependency>
  113. <!-- Spring整合Junit -->
  114. <dependency>
  115. <groupId>org.springframework</groupId>
  116. <artifactId>spring-test</artifactId>
  117. </dependency>
  118. <!-- mybatis的环境 -->
  119. <dependency>
  120. <groupId>org.mybatis</groupId>
  121. <artifactId>mybatis</artifactId>
  122. </dependency>
  123. <!--mysql环境-->
  124. <dependency>
  125. <groupId>mysql</groupId>
  126. <artifactId>mysql-connector-java</artifactId>
  127. </dependency>
  128. <!--spring整合jdbc-->
  129. <dependency>
  130. <groupId>org.springframework</groupId>
  131. <artifactId>spring-jdbc</artifactId>
  132. </dependency>
  133. <!--spring整合mybatis-->
  134. <dependency>
  135. <groupId>org.mybatis</groupId>
  136. <artifactId>mybatis-spring</artifactId>
  137. </dependency>
  138. <!--druid连接池-->
  139. <dependency>
  140. <groupId>com.alibaba</groupId>
  141. <artifactId>druid</artifactId>
  142. </dependency>
  143. <!--分页插件坐标-->
  144. <dependency>
  145. <groupId>com.github.pagehelper</groupId>
  146. <artifactId>pagehelper</artifactId>
  147. </dependency>
  148. <dependency>
  149. <groupId>org.springframework</groupId>
  150. <artifactId>spring-webmvc</artifactId>
  151. </dependency>
  152. <dependency>
  153. <groupId>com.fasterxml.jackson.core</groupId>
  154. <artifactId>jackson-databind</artifactId>
  155. </dependency>
  156. </dependencies>
  157. <build>
  158. <pluginManagement>
  159. <plugins>
  160. <!--具体的插件配置-->
  161. <plugin>
  162. <groupId>org.apache.tomcat.maven</groupId>
  163. <artifactId>tomcat7-maven-plugin</artifactId>
  164. <version>2.1</version>
  165. <configuration>
  166. <port>80</port>
  167. <path>/</path>
  168. </configuration>
  169. </plugin>
  170. </plugins>
  171. </pluginManagement>
  172. </build>
  173. </project>

1.2.2 maven-ssm-pojo

  • 目录结构:

  • pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>maven-ssm</artifactId>
  7. <groupId>com.xudaxian</groupId>
  8. <version>1.0</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>maven-ssm-pojo</artifactId>
  12. <properties>
  13. <maven.compiler.source>11</maven.compiler.source>
  14. <maven.compiler.target>11</maven.compiler.target>
  15. </properties>
  16. </project>
  • com.xudaxian.domain.User.java
  1. package com.xudaxian.domain;
  2. import java.io.Serializable;
  3. import java.util.Date;
  4. /**
  5. * User
  6. *
  7. * @author maxiaoke.com
  8. * @version 1.0
  9. * @since 2021 -06-14 07:25
  10. */
  11. public class User implements Serializable {
  12. private String uuid;
  13. private String username;
  14. private String password;
  15. private String realName;
  16. private Integer gender;
  17. private Date birthday;
  18. public String getUuid() {
  19. return uuid;
  20. }
  21. public void setUuid(String uuid) {
  22. this.uuid = uuid;
  23. }
  24. public String getUsername() {
  25. return username;
  26. }
  27. public void setUsername(String username) {
  28. this.username = username;
  29. }
  30. public String getPassword() {
  31. return password;
  32. }
  33. public void setPassword(String password) {
  34. this.password = password;
  35. }
  36. public String getRealName() {
  37. return realName;
  38. }
  39. public void setRealName(String realName) {
  40. this.realName = realName;
  41. }
  42. public Integer getGender() {
  43. return gender;
  44. }
  45. public void setGender(Integer gender) {
  46. this.gender = gender;
  47. }
  48. public Date getBirthday() {
  49. return birthday;
  50. }
  51. public void setBirthday(Date birthday) {
  52. this.birthday = birthday;
  53. }
  54. @Override
  55. public String toString() {
  56. return "User{" +
  57. "uuid='" + uuid + '\'' +
  58. ", username='" + username + '\'' +
  59. ", password='" + password + '\'' +
  60. ", realName='" + realName + '\'' +
  61. ", gender=" + gender +
  62. ", birthday=" + birthday +
  63. '}';
  64. }
  65. }

1.2.3 maven-ssm-dao

  • 目录结构:

  • pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>maven-ssm</artifactId>
  7. <groupId>com.xudaxian</groupId>
  8. <version>1.0</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>maven-ssm-dao</artifactId>
  12. <properties>
  13. <maven.compiler.source>11</maven.compiler.source>
  14. <maven.compiler.target>11</maven.compiler.target>
  15. </properties>
  16. <dependencies>
  17. <!-- 导入资源文件pojo -->
  18. <dependency>
  19. <groupId>com.xudaxian</groupId>
  20. <artifactId>maven-ssm-pojo</artifactId>
  21. </dependency>
  22. <!-- 单元测试 -->
  23. <dependency>
  24. <groupId>junit</groupId>
  25. <artifactId>junit</artifactId>
  26. <version>4.13.2</version>
  27. <scope>test</scope>
  28. </dependency>
  29. </dependencies>
  30. </project>
  • com.xudaxian.mapper.UserMapper.java
  1. package com.xudaxian.mapper;
  2. import com.xudaxian.domain.User;
  3. import org.apache.ibatis.annotations.Mapper;
  4. import org.apache.ibatis.annotations.Param;
  5. import java.util.List;
  6. /**
  7. * @author maxiaoke.com
  8. * @version 1.0
  9. *
  10. */
  11. @Mapper
  12. public interface UserMapper {
  13. /**
  14. * 添加用户信息
  15. *
  16. * @param user 用户信息对象
  17. * @return 如果新增成功,则返回true;否则,返回false
  18. */
  19. boolean save( User user);
  20. /**
  21. * 修改用户信息
  22. *
  23. * @param user 用户信息对象
  24. * @return 如果修改成功,则返回true;否则,返回false
  25. */
  26. boolean update( User user);
  27. /**
  28. * 删除用户信息
  29. *
  30. * @param uuid 主键
  31. * @return 如果删除成功,则返回true;否则,返回false
  32. */
  33. boolean delete(String uuid);
  34. /**
  35. * 根据主键查询用户信息
  36. *
  37. * @param uuid 主键
  38. * @return 用户信息
  39. */
  40. User get(String uuid);
  41. /**
  42. * 查询全部用户信息
  43. *
  44. * @return 全部用户信息
  45. */
  46. List<User> getAll();
  47. /**
  48. * 根据用户名和密码查询用户信息
  49. *
  50. * @param username 用户名
  51. * @param password 密码
  52. * @return 用户信息
  53. */
  54. User getByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
  55. }
  • com/xudaxian/mapper/UserMapper.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.xudaxian.mapper.UserMapper">
  6. <insert id="save">
  7. INSERT INTO `user` (uuid, username, password, realName, gender, birthday)
  8. VALUES (#{uuid}, #{username}, #{password}, #{realName}, #{gender}, #{birthday})
  9. </insert>
  10. <update id="update">
  11. UPDATE `user`
  12. SET username=#{username},
  13. password=#{password},
  14. realName=#{realName},
  15. gender=#{gender},
  16. birthday=#{birthday}
  17. WHERE uuid = #{uuid}
  18. </update>
  19. <delete id="delete">
  20. DELETE
  21. FROM `user`
  22. WHERE uuid = #{uuid}
  23. </delete>
  24. <select id="get" resultType="com.xudaxian.domain.User">
  25. SELECT *
  26. FROM `user`
  27. WHERE uuid = #{uuid}
  28. </select>
  29. <select id="getAll" resultType="com.xudaxian.domain.User">
  30. SELECT *
  31. FROM `user`
  32. </select>
  33. <select id="getByUsernameAndPassword" resultType="com.xudaxian.domain.User">
  34. SELECT *
  35. FROM `user`
  36. WHERE username = #{username}
  37. AND password = #{password}
  38. </select>
  39. </mapper>
  • jdbc.properties
  1. jdbc.driver=com.mysql.cj.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/maven?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
  3. jdbc.username=root
  4. jdbc.password=123456
  • applicationContext-dao.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  7. <!--开启bean注解扫描-->
  8. <context:component-scan base-package="com.xudaxian">
  9. <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/>
  10. </context:component-scan>
  11. <!--加载properties文件-->
  12. <context:property-placeholder location="classpath*:jdbc.properties"/>
  13. <!--数据源-->
  14. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
  15. <property name="driverClassName" value="${jdbc.driver}"/>
  16. <property name="url" value="${jdbc.url}"/>
  17. <property name="username" value="${jdbc.username}"/>
  18. <property name="password" value="${jdbc.password}"/>
  19. </bean>
  20. <!--整合mybatis到spring中-->
  21. <bean class="org.mybatis.spring.SqlSessionFactoryBean">
  22. <property name="dataSource" ref="dataSource"/>
  23. <property name="typeAliasesPackage" value="com.xudaxian.mapper"/>
  24. <!--分页插件-->
  25. <property name="plugins">
  26. <array>
  27. <bean class="com.github.pagehelper.PageInterceptor">
  28. <property name="properties">
  29. <props>
  30. <prop key="helperDialect">mysql</prop>
  31. <prop key="reasonable">true</prop>
  32. </props>
  33. </property>
  34. </bean>
  35. </array>
  36. </property>
  37. </bean>
  38. <!--映射扫描-->
  39. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  40. <property name="basePackage" value="com.xudaxian.mapper"/>
  41. </bean>
  42. </beans>

1.2.4 maven-ssm-service

  • 目录结构:

  • pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>maven-ssm</artifactId>
  7. <groupId>com.xudaxian</groupId>
  8. <version>1.0</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>maven-ssm-service</artifactId>
  12. <properties>
  13. <maven.compiler.source>11</maven.compiler.source>
  14. <maven.compiler.target>11</maven.compiler.target>
  15. </properties>
  16. <dependencies>
  17. <dependency>
  18. <groupId>com.xudaxian</groupId>
  19. <artifactId>maven-ssm-dao</artifactId>
  20. </dependency>
  21. <!-- 单元测试 -->
  22. <dependency>
  23. <groupId>junit</groupId>
  24. <artifactId>junit</artifactId>
  25. <version>4.13.2</version>
  26. <scope>test</scope>
  27. </dependency>
  28. </dependencies>
  29. </project>
  • com.xudaxian.service.UserService.java
  1. package com.xudaxian.service;
  2. import com.github.pagehelper.PageInfo;
  3. import com.xudaxian.domain.User;
  4. /**
  5. * @author maxiaoke.com
  6. * @version 1.0
  7. *
  8. */
  9. public interface UserService {
  10. /**
  11. * 保存用户信息
  12. *
  13. * @param user 用户信息
  14. * @return
  15. */
  16. boolean save(User user);
  17. /**
  18. * 更新用户信息
  19. *
  20. * @param user 用户信息
  21. * @return
  22. */
  23. boolean update(User user);
  24. /**
  25. * 删除用户信息
  26. *
  27. * @param uuid 主键
  28. * @return
  29. */
  30. boolean delete(String uuid);
  31. /**
  32. * 根据主键获取用户信息
  33. *
  34. * @param uuid 主键
  35. * @return
  36. */
  37. User get(String uuid);
  38. /**
  39. * 分页显示用户信息
  40. *
  41. * @param page 页码
  42. * @param size 每页显示条数
  43. * @return
  44. */
  45. PageInfo<User> getAll(int page, int size);
  46. /**
  47. * 根据用户名和密码登录
  48. *
  49. * @param userName
  50. * @param password
  51. * @return
  52. */
  53. User login(String userName, String password);
  54. }
  • com.xudaxian.service.impl.UserServiceImpl.java
  1. package com.xudaxian.service.impl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.xudaxian.domain.User;
  5. import com.xudaxian.mapper.UserMapper;
  6. import com.xudaxian.service.UserService;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import java.util.List;
  11. /**
  12. * @author maxiaoke.com
  13. * @version 1.0
  14. *
  15. */
  16. @Transactional
  17. @Service
  18. public class UserServiceImpl implements UserService {
  19. @Autowired
  20. private UserMapper userMapper;
  21. @Override
  22. public boolean save(User user) {
  23. return userMapper.save(user);
  24. }
  25. @Override
  26. public boolean update(User user) {
  27. return userMapper.update(user);
  28. }
  29. @Override
  30. public boolean delete(String uuid) {
  31. return userMapper.delete(uuid);
  32. }
  33. @Override
  34. public User get(String uuid) {
  35. return userMapper.get(uuid);
  36. }
  37. @Override
  38. public PageInfo<User> getAll(int page, int size) {
  39. PageHelper.startPage(page, size);
  40. List<User> userList = userMapper.getAll();
  41. return new PageInfo<>(userList);
  42. }
  43. @Override
  44. public User login(String userName, String password) {
  45. return userMapper.getByUsernameAndPassword(userName, password);
  46. }
  47. }
  • applicationContext-service.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  8. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
  9. <!--开启bean注解扫描-->
  10. <context:component-scan base-package="com.xudaxian">
  11. <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/>
  12. </context:component-scan>
  13. <!-- 导入applicationContext-dao.xml文件 -->
  14. <import resource="classpath*:applicationContext-dao.xml"/>
  15. <!--开启注解式事务-->
  16. <tx:annotation-driven transaction-manager="txManager"/>
  17. <!--事务管理器-->
  18. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  19. <property name="dataSource" ref="dataSource"/>
  20. </bean>
  21. </beans>

1.2.5 maven-ssm-web

  • 目录结构:

  • pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <!-- 定义该工程的父工程 -->
  6. <parent>
  7. <artifactId>maven-ssm</artifactId>
  8. <groupId>com.xudaxian</groupId>
  9. <version>1.0</version>
  10. <!-- 填写父工程的pom文件,如果是下面的这种格式,可以省略relativePath -->
  11. <relativePath>../pom.xml</relativePath>
  12. </parent>
  13. <modelVersion>4.0.0</modelVersion>
  14. <artifactId>maven-ssm-web</artifactId>
  15. <packaging>war</packaging>
  16. <properties>
  17. <maven.compiler.source>11</maven.compiler.source>
  18. <maven.compiler.target>11</maven.compiler.target>
  19. </properties>
  20. <dependencies>
  21. <dependency>
  22. <groupId>com.xudaxian</groupId>
  23. <artifactId>maven-ssm-service</artifactId>
  24. </dependency>
  25. </dependencies>
  26. <build>
  27. <!--设置插件-->
  28. <plugins>
  29. <!--具体的插件配置-->
  30. <plugin>
  31. <groupId>org.apache.tomcat.maven</groupId>
  32. <artifactId>tomcat7-maven-plugin</artifactId>
  33. </plugin>
  34. </plugins>
  35. </build>
  36. </project>
  • com.xudaxian.utils.Code.java
  1. package com.xudaxian.utils;
  2. import java.io.Serializable;
  3. /**
  4. * @author maxiaoke.com
  5. * @version 1.0
  6. *
  7. */
  8. public class Code implements Serializable {
  9. // 操作结果编码
  10. public static final Integer SAVE_OK = 20011;
  11. public static final Integer UPDATE_OK = 20021;
  12. public static final Integer DELETE_OK = 20031;
  13. public static final Integer GET_OK = 20041;
  14. public static final Integer SAVE_ERROR = 20010;
  15. public static final Integer UPDATE_ERROR = 20020;
  16. public static final Integer DELETE_ERROR = 20030;
  17. public static final Integer GET_ERROR = 20040;
  18. // 系统错误编码
  19. // 操作权限编码
  20. // 校验结果编码
  21. }
  • com.xudaxian.utils.Result.java
  1. package com.xudaxian.utils;
  2. import java.io.Serializable;
  3. /**
  4. * @author maxiaoke.com
  5. * @version 1.0
  6. *
  7. */
  8. public class Result implements Serializable {
  9. // 操作结果编码
  10. private Integer code;
  11. // 操作数据结果
  12. private Object data;
  13. // 消息
  14. private String message;
  15. public Result(Integer code) {
  16. this.code = code;
  17. }
  18. public Result(Integer code, Object data) {
  19. this.code = code;
  20. this.data = data;
  21. }
  22. public Integer getCode() {
  23. return code;
  24. }
  25. public void setCode(Integer code) {
  26. this.code = code;
  27. }
  28. public Object getData() {
  29. return data;
  30. }
  31. public void setData(Object data) {
  32. this.data = data;
  33. }
  34. public String getMessage() {
  35. return message;
  36. }
  37. public void setMessage(String message) {
  38. this.message = message;
  39. }
  40. @Override
  41. public String toString() {
  42. return "Result{" +
  43. "code=" + code +
  44. ", data=" + data +
  45. ", message='" + message + '\'' +
  46. '}';
  47. }
  48. }
  • com.xudaxian.web.UserController.java
  1. package com.xudaxian.web;
  2. import com.github.pagehelper.PageInfo;
  3. import com.xudaxian.domain.User;
  4. import com.xudaxian.service.UserService;
  5. import com.xudaxian.utils.Code;
  6. import com.xudaxian.utils.Result;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.web.bind.annotation.*;
  9. /**
  10. * @author maxiaoke.com
  11. * @version 1.0
  12. *
  13. */
  14. @RestController
  15. @RequestMapping("/user")
  16. public class UserController {
  17. @Autowired
  18. private UserService userService;
  19. @PostMapping
  20. public Result save(User user) {
  21. boolean flag = userService.save(user);
  22. return new Result(flag ? Code.SAVE_OK : Code.SAVE_ERROR);
  23. }
  24. @PutMapping
  25. public Result update(User user) {
  26. boolean flag = userService.update(user);
  27. return new Result(flag ? Code.UPDATE_OK : Code.UPDATE_ERROR);
  28. }
  29. @DeleteMapping("/{uuid}")
  30. public Result delete(@PathVariable String uuid) {
  31. boolean flag = userService.delete(uuid);
  32. return new Result(flag ? Code.DELETE_OK : Code.DELETE_ERROR);
  33. }
  34. @GetMapping("/{uuid}")
  35. public Result get(@PathVariable String uuid) {
  36. User user = userService.get(uuid);
  37. return new Result(null != user ? Code.GET_OK : Code.GET_ERROR, user);
  38. }
  39. @GetMapping("/{page}/{size}")
  40. public Result getAll(@PathVariable Integer page, @PathVariable Integer size) {
  41. PageInfo<User> all = userService.getAll(page, size);
  42. return new Result(null != all ? Code.GET_OK : Code.GET_ERROR, all);
  43. }
  44. @PostMapping("/login")
  45. public Result login(String userName, String password) {
  46. User user = userService.login(userName, password);
  47. return new Result(null != user ? Code.GET_OK : Code.GET_ERROR, user);
  48. }
  49. }
  • applicationContext.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  8. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
  9. <context:component-scan base-package="com.xudaxian">
  10. <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/>
  11. </context:component-scan>
  12. <import resource="classpath*:applicationContext-service.xml"/>
  13. </beans>
  • spring-mvc.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  9. <mvc:annotation-driven/>
  10. <context:component-scan base-package="com.xudaxian.web">
  11. <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/>
  12. </context:component-scan>
  13. </beans>
  • webapp/WEB-INF/web.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  5. http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  6. version="3.1">
  7. <context-param>
  8. <param-name>contextConfigLocation</param-name>
  9. <param-value>classpath*:applicationContext.xml</param-value>
  10. </context-param>
  11. <!--启动服务器时,通过监听器加载spring运行环境-->
  12. <listener>
  13. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  14. </listener>
  15. <filter>
  16. <filter-name>CharacterEncodingFilter</filter-name>
  17. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  18. <init-param>
  19. <param-name>encoding</param-name>
  20. <param-value>UTF-8</param-value>
  21. </init-param>
  22. </filter>
  23. <filter-mapping>
  24. <filter-name>CharacterEncodingFilter</filter-name>
  25. <url-pattern>/*</url-pattern>
  26. </filter-mapping>
  27. <servlet>
  28. <servlet-name>DispatcherServlet</servlet-name>
  29. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  30. <init-param>
  31. <param-name>contextConfigLocation</param-name>
  32. <param-value>classpath*:spring-mvc.xml</param-value>
  33. </init-param>
  34. </servlet>
  35. <servlet-mapping>
  36. <servlet-name>DispatcherServlet</servlet-name>
  37. <url-pattern>/</url-pattern>
  38. </servlet-mapping>
  39. </web-app>

该分类下的相关小册推荐: