之前想的比较简单,请求到达controller的时候,传给action的参数没有经过任何封装,就是一个Map.然后action再调用service的时候,传递的参数也是map @Controller public class DepositController extends BaseController{ @TransactionMapping(transaction = "Deposit") public Map Deposit(Map request) { Map map = c…
当我们在非Controller类中应用service的方法是会报空指针,如图: 这是因为Spring MVC普通类或工具类中调用service报空null的解决办法(调用service报java.lang.NullPointerException) 按上述步骤解决完自己的工具类后,你会发现项目运行后仍然报空指针此时你需要在applicationContext.xml 配置文件中添加一行配置文件 如图: 对自己工具类所在的包进行注解扫描,使Spring能够识别自己上面所配置的注解…
当交易由Action进入Service之前,需要根据不同的Service实际负责业务的不同,真正执行Service的业务逻辑之前,做一些检查工作.这样的拦截器应该是基于配置的,与Service关联起来的. /** * @author wangxin * @contact 408657544@qq.com * @date Jul 22, 2017 * @Description: 所有TransactionController的抽象父类,主要作用为以一种低耦合的方式调用Service */ publ…
[工程截图] [PersonDao.java] package com.HigginCui.dao; public interface PersonDao { public void savePerson(); } [PersonDaoImpl.java] package com.HigginCui.dao; public class PersonDaoImpl implements PersonDao{ @Override public void savePerson() { System.o…
Java Web项目,写到Action的时候,往往会要引入Service,这个是一个常见的操作. 但是,我自认为引入Service需要给它get和set方法,并且这个习惯已经沿用到现在.然而,自从参与了dojo这个项目,这种写法被认为是片面的. 以前引入Service的写法如下: /** * userService */ private UserService userService; /** * userService get方法 */ public UserService getUserSe…
写这篇日志的时候,我已经完成了这个目标,并且中间经历了一次面试.现在回过头看,已经觉得印象不那么深刻了,果然还是一边思考,一边记录这样最好.但我还是严格要求自己,从新做了梳理,对相关配置进行了整理和说明,以下. 谁是启动类 既然是构建可执行的JAR包,首先要明确启动类是谁.一开始做的时候,我是使用的自己写的启动类 public static void main(String[] args) { new ClassPathXmlApplicationContext("classpath:META-…
这要从DefaultAnnotationHandlerMapping这个类说起,该类被@Component注释,该类被Spring IOC容器实例化之后,将会执行其initApplicationContext方法(该方法在其父类中得到实现) 主要的几个类的继承关系如上图,其中ApplicationObjectSupport是由SpringFrameWork提供的抽象类 上图是ApplicationObjectSupport类中的两个方法,该类实现了ApplicationContextAware接…
这篇随笔的许多知识来源于:http://www.importnew.com/19391.html 之所以会去看这些东东,主要是希望能够模仿spring mvc的处理流程,做出一套合理的交易处理流程. 之前已经根据网上查到的知识,做了一些尝试,只要按照如下流程,就可以使用自定义的命名空间: 1.通过在spring的配置文件中配置自己的命名空间 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q…
[工程截图] [PersonDao.java] package com.HigginCui.annotation; public interface PersonDao { public void savePerson(); } [PersonDaoImpl.java] package com.HigginCui.annotation; import org.springframework.stereotype.Repository; /* * @Repository("personDao&qu…
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 是…