一、搭建整合环境
1、ssm整合说明
2、搭建环境
二、Spring框架代码的编写
1、编写Spring框架(处理业务层)
applicationContext.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- 开启注解扫描,希望处理service和dao,controller不需要spring框架去处理 -->
  3. <context:component-scan base-package="cn.itcast">
  4. <!--可以配置哪些注解不扫描-->
  5. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  6. </context:component-scan>
  7. </beans>
TestSpring.java
  1. package cn.itcast.test;
  2. import cn.itcast.service.AccountService;
  3. import org.junit.Test;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6. public class TestSpring {
  7. @Test
  8. public void run1(){
  9. //加载Spring的配置文件
  10. ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");
  11. //获取对象
  12. AccountService as = (AccountService) ac.getBean("accountService");
  13. //调用方法
  14. as.findAll();
  15. }
  16. }
AccountServiceImpl.java
  1. package cn.itcast.service.impl;
  2. import cn.itcast.domain.Account;
  3. import cn.itcast.service.AccountService;
  4. import org.springframework.stereotype.Service;
  5. import java.util.List;
  6. @Service("accountService")
  7. public class AccountServiceImpl implements AccountService {
  8. @Override
  9. public List<Account> findAll() {
  10. System.out.println("业务层:查询所有账户……");
  11. return null;
  12. }
  13. @Override
  14. public void savAccount(Account account) {
  15. System.out.println("业务层:保存账户……");
  16. }
  17. }
三、Spring整合SpringMVC框架
1、编写SpringMVC框架
web.xml
  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name>Archetype Created Web Application</display-name>
  6. <!--配置前端控制器-->
  7. <servlet>
  8. <servlet-name>dispatcherServlet</servlet-name>
  9. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  10. <!--1.希望加载springmvc.xml配置文件-->
  11. <init-param>
  12. <param-name>contextConfigLocation</param-name>
  13. <param-value>classpath:springmvc.xml</param-value>
  14. </init-param>
  15. <!--2.启动服务器,创建该Servlet-->
  16. <load-on-startup>1</load-on-startup>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>dispatcherServlet</servlet-name>
  20. <url-pattern>/</url-pattern>
  21. </servlet-mapping>
  22. <!--解决中文乱码的过滤器-->
  23. <filter>
  24. <filter-name>characterEncodingFilter</filter-name>
  25. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  26. <init-param>
  27. <param-name>encoding</param-name>
  28. <param-value>UTF-8</param-value>
  29. </init-param>
  30. </filter>
  31. <filter-mapping>
  32. <filter-name>characterEncodingFilter</filter-name>
  33. <url-pattern>/*</url-pattern>
  34. </filter-mapping>
  35. </web-app>
springmvc.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:mvc="http://www.springframework.org/schema/mvc"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation=" http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/mvc
  9. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  10. http://www.springframework.org/schema/context
  11. http://www.springframework.org/schema/context/spring-context.xsd">
  12. <!--开启注解扫描,只扫描Controller注解-->
  13. <context:component-scan base-package="cn.itcast">
  14. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  15. </context:component-scan>
  16. <!--配置视图解析器,往哪跳转-->
  17. <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  18. <property name="prefix" value="/WEB-INF/pages/"></property>
  19. <property name="suffix" value=".jsp"></property>
  20. </bean>
  21. <!--过滤静态资源-->
  22. <mvc:resources mapping="/js/**" location="/js/"></mvc:resources>
  23. <!--开启SpringMVC注解的支持-->
  24. <mvc:annotation-driven/>
  25. </beans>
AccountController.java
  1. package cn.itcast.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. /**
  5. * 账户web控制器
  6. */
  7. @Controller
  8. @RequestMapping("/account")
  9. public class AccountController {
  10. @RequestMapping("/findAll")
  11. public String findAll(){
  12. System.out.println("表现层:查询所有的账户信息");
  13. return "list";
  14. }
  15. }
2、Spring整合SpringMVC的框架
AccountController.java
  1. package cn.itcast.controller;
  2. import cn.itcast.service.AccountService;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Controller;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. /**
  7. * 账户web控制器
  8. */
  9. @Controller
  10. @RequestMapping("/account")
  11. public class AccountController {
  12. //放入容器
  13. @Autowired
  14. private AccountService accountService;
  15. @RequestMapping("/findAll")
  16. public String findAll(){
  17. System.out.println("表现层:查询所有的账户信息");
  18. //整合:成功调用业务层方法(依赖注入)
  19. accountService.findAll();
  20. return "list";
  21. }
  22. }
web.xml
  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name>Archetype Created Web Application</display-name>
  6. <!--配置Spring的监听器,默认只加载WEB-INF目录下的applicationContext.xml文件-->
  7. <listener>
  8. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  9. </listener>
  10. <!--设置配置文件的路径-->
  11. <context-param>
  12. <param-name>contextConfigLocation</param-name>
  13. <param-value>classpath:applicationContext.xml</param-value>
  14. </context-param>
  15. </web-app>
四、Spring整合MyBatis框架
1、编写MyBatis框架
SqlMapConfig.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <!--配置环境-->
  7. <environments default="mysql">
  8. <environment id="mysql">
  9. <transactionManager type="JDBC"/>
  10. <dataSource type="POOLED">
  11. <property name="driver" value="com.mysql.jdbc.Driver"/>
  12. <property name="url" value="jdbc:mysql:///ssm"/>
  13. <property name="username" value="root"/>
  14. <property name="password" value="root"/>
  15. </dataSource>
  16. </environment>
  17. </environments>
  18. <!--引入映射配置文件-->
  19. <mappers>
  20. <!--<mapper resource="cn/itcast/dao/xxx.xml"></mapper>-->
  21. <!--<mapper class="cn/itcast/dao/AccountDao" />-->
  22. <package name="cn.itcast.dao"/>
  23. </mappers>
  24. </configuration>
AccountDao.java
  1. package cn.itcast.dao;
  2. import cn.itcast.domain.Account;
  3. import org.apache.ibatis.annotations.Insert;
  4. import org.apache.ibatis.annotations.Select;
  5. import java.util.List;
  6. /**
  7. * 账户接口
  8. * 使用代理可以只写接口不写实现类
  9. */
  10. public interface AccountDao {
  11. /**
  12. * 查询所有
  13. * @return
  14. */
  15. @Select("select * from account")
  16. public List<Account> findAll();
  17. /**
  18. * 保存账户信息
  19. * @param account
  20. */
  21. @Insert("insert into account (name,money) values (#{name},#{money})")
  22. public void savAccount(Account account);
  23. }
TestMybatis.java
  1. package cn.itcast.test;
  2. import cn.itcast.dao.AccountDao;
  3. import cn.itcast.domain.Account;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. import org.junit.Test;
  9. import java.io.InputStream;
  10. import java.util.List;
  11. public class TestMybatis {
  12. @Test
  13. public void run1() throws Exception{
  14. //加载Mybatis配置文件
  15. InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
  16. //创建SqlSessionFactory对象
  17. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
  18. //创建SqlSession对象
  19. SqlSession session = factory.openSession();
  20. //获取到代理对象
  21. AccountDao dao = session.getMapper(AccountDao.class);
  22. //查询所有数据
  23. List<Account> list = dao.findAll();
  24. for (Account account : list) {
  25. System.out.println(account);
  26. }
  27. //释放资源
  28. session.close();
  29. in.close();
  30. }
  31. }
2、编写MyBatis框架测试保存的方法
  1. TestMybatis.java
  1. /**
  2. * 测试保存
  3. * @throws Exception
  4. */
  5. @Test
  6. public void run2() throws Exception{
  7. Account account = new Account();
  8. account.setName("王五");
  9. account.setMoney(3d);
  10. //加载Mybatis配置文件
  11. InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
  12. //创建SqlSessionFactory对象
  13. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
  14. //创建SqlSession对象
  15. SqlSession session = factory.openSession();
  16. //获取到代理对象
  17. AccountDao dao = session.getMapper(AccountDao.class);
  18. //保存
  19. dao.savAccount(account);
  20. //增删改需要考虑事务,提交事务
  21. session.commit();
  22. //释放资源
  23. session.close();
  24. in.close();
  25. }
3、Spring整合MyBatis框架
applicat
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx.xsd">
  15. <!-- 开启注解扫描,希望处理service和dao,controller不需要spring框架去处理 -->
  16. <context:component-scan base-package="cn.itcast">
  17. <!--可以配置哪些注解不扫描-->
  18. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  19. </context:component-scan>
  20. <!--Spring整合Mybatis框架-->
  21. <!--配置c3p0连接池-->
  22. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  23. <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  24. <property name="jdbcUrl" value="jdbc:mysql:///ssm"/>
  25. <property name="user" value="root"/>
  26. <property name="password" value="root"/>
  27. </bean>
  28. <!--配置SqlSessionFactory工厂对象-->
  29. <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  30. <property name="dataSource" ref="dataSource" />
  31. </bean>
  32. <!--配置AccountDao接口所在的包-->
  33. <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  34. <property name="basePackage" value="cn.itcast.dao" />
  35. </bean>
  36. </beans>
  1. package cn.itcast.dao;
  2. import cn.itcast.domain.Account;
  3. import org.apache.ibatis.annotations.Insert;
  4. import org.apache.ibatis.annotations.Select;
  5. import org.springframework.stereotype.Repository;
  6. import java.util.List;
  7. /**
  8. * 账户接口
  9. * 使用代理可以只写接口不写实现类
  10. */
  11. @Repository
  12. public interface AccountDao {
  13. /**
  14. * 查询所有
  15. * @return
  16. */
  17. @Select("select * from account")
  18. public List<Account> findAll();
  19. /**
  20. * 保存账户信息
  21. * @param account
  22. */
  23. @Insert("insert into account (name,money) values (#{name},#{money})")
  24. public void savAccount(Account account);
  25. }
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <html>
  4. <head>
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h3>查询了所有账户信息</h3>
  9. ${list}
  10. <h3>jstl遍历</h3>
  11. <c:forEach items="${list}" var="account">
  12. ${account.name} <br>
  13. </c:forEach>
  14. </body>
  15. </html>
  1. package cn.itcast.controller;
  2. import cn.itcast.domain.Account;
  3. import cn.itcast.service.AccountService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.Model;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import java.util.List;
  9. /**
  10. * 账户web控制器
  11. */
  12. @Controller
  13. @RequestMapping("/account")
  14. public class AccountController {
  15. //放入容器
  16. @Autowired
  17. private AccountService accountService;
  18. @RequestMapping("/findAll")
  19. public String findAll(Model model){
  20. System.out.println("表现层:查询所有的账户信息");
  21. //整合:成功调用业务层方法(依赖注入)
  22. List<Account> list = accountService.findAll();
  23. model.addAttribute("list",list);
  24. return "list";
  25. }
  26. }
  1. package cn.itcast.service.impl;
  2. import cn.itcast.dao.AccountDao;
  3. import cn.itcast.domain.Account;
  4. import cn.itcast.service.AccountService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import java.util.List;
  8. @Service("accountService")
  9. public class AccountServiceImpl implements AccountService {
  10. @Autowired
  11. private AccountDao accountDao;
  12. @Override
  13. public List<Account> findAll() {
  14. System.out.println("业务层:查询所有账户……");
  15. return accountDao.findAll();
  16. }
  17. @Override
  18. public void savAccount(Account account) {
  19. System.out.println("业务层:保存账户……");
  20. accountDao.savAccount(account);
  21. }
  22. }
controller调用service,service调dao,通过controller从页面的ModelAndView进行返回
4、Spring整合MyBatis框架配置事务
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx.xsd">
  15. <!-- 开启注解扫描,希望处理service和dao,controller不需要spring框架去处理 -->
  16. <context:component-scan base-package="cn.itcast">
  17. <!--可以配置哪些注解不扫描-->
  18. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  19. </context:component-scan>
  20. <!--Spring整合Mybatis框架-->
  21. <!--配置c3p0连接池-->
  22. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  23. <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  24. <property name="jdbcUrl" value="jdbc:mysql:///ssm"/>
  25. <property name="user" value="root"/>
  26. <property name="password" value="root"/>
  27. </bean>
  28. <!--配置SqlSessionFactory工厂对象-->
  29. <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  30. <property name="dataSource" ref="dataSource" />
  31. </bean>
  32. <!--配置AccountDao接口所在的包-->
  33. <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  34. <property name="basePackage" value="cn.itcast.dao" />
  35. </bean>
  36. <!--配置Spring框架的声明式事务管理-->
  37. <!--配置事务管理器-->
  38. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  39. <property name="dataSource" ref="dataSource"/>
  40. </bean>
  41. <!--配置事务通知-->
  42. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  43. <tx:attributes>
  44. <tx:method name="find" read-only="true"/>
  45. <tx:method name="*" isolation="DEFAULT"/>
  46. </tx:attributes>
  47. </tx:advice>
  48. <!--配置AOP增强-->
  49. <aop:config>
  50. <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.itcast.service.impl.*ServiceImpl.*(..))"></aop:advisor>
  51. </aop:config>
  52. </beans>
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. <a href="account/findAll">测试</a>
  8. <h3>测试保存</h3>
  9. <form action="account/save" method="post">
  10. 姓名:<input type="text" name="name"><br>
  11. 金额:<input type="text" name="money"><br>
  12. <input type="submit" value="get now!"><br>
  13. </form>
  14. </body>
  15. </html>
  1. package cn.itcast.controller;
  2. import cn.itcast.domain.Account;
  3. import cn.itcast.service.AccountService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.Model;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import java.io.IOException;
  11. import java.util.List;
  12. /**
  13. * 账户web控制器
  14. */
  15. @Controller
  16. @RequestMapping("/account")
  17. public class AccountController {
  18. //放入容器
  19. @Autowired
  20. private AccountService accountService;
  21. @RequestMapping("/save")
  22. public void save(Account account, HttpServletRequest request, HttpServletResponse response) throws IOException {
  23. accountService.savAccount(account);
  24. response.sendRedirect(request.getContextPath()+"/account/findAll");
  25. return;
  26. }
  27. }

SpringMVC03:SSM整合的更多相关文章

  1. Maven + 最新SSM整合

    . 1. 开发环境搭建 参考博文:Eclipse4.6(Neon) + Tomcat8 + MAVEN3.3.9 + SVN项目完整环境搭建 2. Maven Web项目创建 2.1. 2.2. 2. ...

  2. SSM整合配置

    SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis) 使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有 ...

  3. SSM整合中遇到的不能扫描注解的bug

    我的开发环境为: ubuntu14.04LTS 64bit; Spring Tool Suite  3.5.0.RELEASE Maven 3.2.3 SSM整合中遇到的不能扫描注解的bug 最终解决 ...

  4. 基于Maven的SSM整合的web工程

    此文章主要有以下几个知识点: 一.如何创建 Maven的Web 工程 二.整合SSM(Spring,SpringMvc,Mybatis),包括所有的配置文件 三.用 mybatis 逆向工程生成对应的 ...

  5. ssm整合说明与模板-Spring Spring MVC Mybatis整合开发

    ssm整合说明 spring+spring mvc+mybatis 说明 源码下载 由于之前存在ssh框架,spring+struts+hibernate,其中spring负责aop与ioc,所以一般 ...

  6. 04.redis集群+SSM整合使用

    redis集群+SSM整合使用 首先是创建redis-cluster文件夹: 因为redis最少需要6个节点(三主三从),为了更好的理解,我这里创建了两台虚拟机(192.168.0.109 192.1 ...

  7. SSM整合---实现全部用户查询

    SSM整合 准备 1.创建工程 2.导入必须jar包 链接: https://pan.baidu.com/s/1nvCDQJ3 密码: v5xs 3.工程结构 代码 SqlMapConfig < ...

  8. spring MVC框架入门(外加SSM整合)

    spring MVC框架 一.什么是sping MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 W ...

  9. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  10. ssm 整合(方案二 maven)

    通过maven来整合ssm方便很多,至少不用去找jar包 具体架构如下: 1.配置pom.xml <project xmlns="http://maven.apache.org/POM ...

随机推荐

  1. 第一个Django应用 - 第一部分:请求与响应

    一. 新建项目 进入你期望的项目保存目录,运行下面的命令: $ django-admin startproject mysite 这将在目录下生成一个mysite目录,也就是你的这个Django项目的 ...

  2. 修改Windows10 命令终端cmd的编码为UTF-8 && IDEA控制台输出中文乱码

    临时修改 进入cmd窗口后,直接执行 chcp 65001 永久修改 在运行中输入regedit,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Pro ...

  3. 通过堡垒机上传文件报错ssh:没有权限的问题

    背景描述 一台有公网IP的主机安装的有jumpserver,假设为A主机,另外几台没有公网ip的主机,假设其中一个为B主机. 操作 1.通过主机A的公网IP和端口等登录到jumpserver的管理员用 ...

  4. ​打造企业自己代码规范IDEA插件(中)

    一些基本概念 在开始独立研发公司自己的代码规范检查规则之前,先介绍一些相关的基本概念.阿里巴巴代码规范很多规则其实都是基于开源框架PMD进行的研发.PMD用官方的话语介绍来说:PMD是一个源代码分析器 ...

  5. 使Squashfs可写的办法

    yiyi@yiyi-HP-Pavilion-Notebook:~/Applications/Office2016$ pwd /home/yiyi/Applications/Office2016 yiy ...

  6. MySQL用户也可以是个角色

    前言 角色(Role),可以认为是一些权限的集合,一直是存在各个数据库中,比如Oracle.SQL Server.OceanBase等,MySQL 自从 8.0 release 才引入角色这个概念. ...

  7. ARC148游记

    A - mod M 题目链接 这道题我们可以首先对于所有的数 $%2$ ,可以证明出答案最多不超过 $2$ ,此时我们就可以把问题转化为:是否存在一个数使得序列 $a$ 中所有元素减去这个数之后的最大 ...

  8. 关于Struts访问不到静态资源的问题

    今天重新配置了Struts的项目进行开发,但是项目静态资源一直访问不到. 将一些静态资源放在WebRoot下的static包下面便于管理. 一开始以为采用拦截.do,只拦截do后缀的请求,解决了静态资 ...

  9. 自主创建mybtis管理应用,用以横向管理数据源

    这个是我写的第一个随手小记,一晃眼做后端开发也有7年多了,现在也准备将一些杂七杂八的资料整理下.也算是回顾这7年中做的比较有意思的东西了. 这个需求是我17年做的,当时的应用场景是仓储库比较多,随时会 ...

  10. DDD-领域驱动(四)-使用IMediator 实现领域事件

    领域事件是指:一个领域中出触发的 集成事件是指:多个微服务之前产生的事件 核心对象 IMediator INotification INotificationHandler 引入:IMediator ...