JFinal框架也整合了spring框架,下面实现JFinal怎么去配置Spring框架。在JFinal中整合Spring使用到的类是SpringPlugin和IocInterceptor类

SpringIplugin类:

SpringPlugin 是作为 JFinal 的 Plugin 而存在的,所以使用时需要在 JFinalConfig 中配置SpringPlugin,以下是 Plugin 配置示例代码:

  1. /**
  2. * 配置插件
  3. */
  4. @Override
  5. public void configPlugin(Plugins me) {
  6. //ConfigDBPluginHelper.configOraclePlugin(me);
  7. //配置Spring挂件, 自动找spring包中所有的xml配置文件
  8. me.add(new SpringPlugin("classpath*:spring/*.xml"));
  9. }

配置SpringPlugin

以上设置默认spring配置xml在src/spring包下

如果设置sringPlugin的时候,没有设置路径

  1. /**
  2. * 配置插件
  3. */
  4. @Override
  5. public void configPlugin(Plugins me) {
  6. //ConfigDBPluginHelper.configOraclePlugin(me);
  7. //配置Spring挂件, 自动找spring包中所有的xml配置文件
  8. me.add(new SpringPlugin());
  9. }

无参数设置

SpringPlugin 将 自动去WebRoot/WEB-INF 目录下寻找 applicationContext.xml 作为配置文件进行初始化。

IocInterceptor类:
IocInterceptor 拦截 action 并对其进行依赖注入,以下是示例代码:

  1. package com.demo.testSpring;
  2.  
  3. import com.jfinal.aop.Before;
  4. import com.jfinal.core.Controller;
  5. import com.jfinal.plugin.spring.IocInterceptor;
  6. import com.jfinal.plugin.spring.Inject;
  7.  
  8. @Before(IocInterceptor.class)
  9. public class testSpringController extends Controller{
  10.  
  11. @Inject.BY_NAME
  12. private Animal animal;
  13.  
  14. public void test(){
  15. animal.move();
  16. animal.jump();
  17. renderNull();
  18. }
  19. }

IocInterceptor

  1. package com.demo.testSpring;
  2.  
  3. public class Animal {
  4. private String animalName;
  5.  
  6. public void setAnimalName(String animalName) {
  7. this.animalName = animalName;
  8. }
  9.  
  10. public void move(){
  11. System.out.println(animalName+" move");
  12. }
  13.  
  14. public void jump(){
  15. System.out.println(animalName+" jump");
  16. }
  17. }

依赖Animal类

  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:aop="http://www.springframework.org/schema/aop"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
  10.  
  11. <bean id="animal" class="com.demo.testSpring.Animal">
  12. <property name="animalName">
  13. <value>dog</value>
  14. </property>
  15. </bean>
  16.  
  17. </beans>

配置文件

需要的jar包

注:IocInterceptor可以设置为全局拦截器;

  1. /**
  2. * 配置全局拦截器
  3. */
  4. public void configInterceptor(Interceptors me) {
  5. me.add(new IocInterceptor());
  6. }

设置为全局拦截器

如果在非Controller中的类中使用spring注入,不需要那么多注解,只需要在xml中配置即可。如下:

  1. package com.demo.testSpring;
  2.  
  3. public class Cat {
  4.  
  5. private Animal animal;
  6.  
  7. public void setAnimal(Animal animal) {
  8. this.animal = animal;
  9. }
  10.  
  11. public void test(){
  12. animal.move();
  13. animal.jump();
  14. }
  15. }

Cat类

  1. package com.demo.testSpring;
  2.  
  3. import com.jfinal.core.Controller;
  4. import com.jfinal.plugin.spring.Inject;
  5.  
  6. public class testSpringController extends Controller{
  7.  
  8. @Inject.BY_NAME
  9. private Cat cat;
  10.  
  11. public void test(){
  12.  
  13. cat.test();
  14. renderNull();
  15. }
  16. }

Controller

  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:aop="http://www.springframework.org/schema/aop"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
  10.  
  11. <bean id="animal" class="com.demo.testSpring.Animal">
  12. <property name="animalName">
  13. <value>dog</value>
  14. </property>
  15. </bean>
  16.  
  17. <bean id="cat" class="com.demo.testSpring.Cat">
  18. <property name="animal">
  19. <ref bean="animal"/>
  20. </property>
  21. </bean>
  22.  
  23. </beans>

配置项

jfinal不提供自动注入功能,如autowared

Jfinal集成Spring的更多相关文章

  1. jfinal集成spring cxf做webservice服务

    链接地址:http://zhengshuo.iteye.com/blog/2154047 废话不说,直接上代码 新增cxf的plugin CXFPlugin package com.jfinal.pl ...

  2. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

  3. CXF集成Spring实现webservice的发布与请求

    CXF集成Spring实现webservice的发布(服务端) 目录结构: 主要代码: package com.cxf.spring.pojo; public class User { int id ...

  4. Dubbo集成Spring与Zookeeper实例

    >>Dubbo最佳实践 使用Dubbo结合Zookeeper和Spring,是使用比较广泛的一种组合,下面参考官方文档,做个简单的示例,一步步搭建一个使用dubbo结合Zookeeper和 ...

  5. Thymeleaf 集成spring

    Thymeleaf 集成spring 如需先了解Thymeleaf的单独使用,请参考<Thymeleaf模板引擎使用>一文. 依赖的jar包 Thymeleaf 已经集成了spring的3 ...

  6. 06_在web项目中集成Spring

    在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...

  7. Hibernate 检索查询的几种方式(HQL,QBC,本地SQL,集成Spring等)

    1.非集成Spring hibernate的检索方式,主要有以下五种. 1.导航对象图检索方式.(根据已经加载的对象,导航到其他对象.) 2.OID检索方式.(按照对象的OID来检索对象.) 3.HQ ...

  8. SpringMVC 3.1集成Spring Security 3.1

    这篇算是一个入门文章,昨天看见有网友提问,spring mvc集成spring security 的时候出错,揣测了一下问题木有解决.我就帮忙给搭建了一个集成框架他说可以,他告诉我这样的文章网上少.今 ...

  9. 【Spring】关于Boot应用中集成Spring Security你必须了解的那些事

    Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...

随机推荐

  1. 第k小整数

    题目描述: 现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000. 输入: 第一行为n和k,第二行开始为n个正整数的值 ...

  2. HTTP协议实际使用笔记

    mozilla的帮助文档: https://developer.mozilla.org/zh-CN/docs/Web/HTTP HTTP协议详解(转) php http头设置相关信息 这个2篇最好先看 ...

  3. JS — 数组去重(4种方法)

    第一种:双重循环 var strCode='zxcvbnmasdfghjklopiuytrewqAWEDRFTGYHUJIK'; var str=''; for(var i=0;i<4;i++) ...

  4. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  5. cocos creator 背景音乐音量和音效音量百分比设置

    把音效的音量大小百分比保存在本地,播放音效的时候,带上音量大小,就像这样 你播放背景音乐时候,保存背景音乐的id,通过改变音量大小来调节背景音乐,就像这样 cc.audioEngine.setVolu ...

  6. dubbo注册到zookeeper

    zk注册中心安装,参见dubbo官网:http://dubbo.apache.org/books/dubbo-admin-book/install/zookeeper.html provider.xm ...

  7. DataCommand和DataAdapter

    SqlDataReader 高效,功能弱,只读访问SqlDataAdapter 强大,要求资源也大一点 SqlDataReader 只能在保持跟数据库连接的状态下才可以读取... SqlDataAda ...

  8. AIX更改用户组

    1:先 修改 user: smit chuser 把id 号给改了.成功! 2:在 修改group 的时候报警告: smit chgroup : can not update the /etc/pas ...

  9. Java 五大原则

    1.单一职责 不论是在设计类,接口还是方法,单一职责都会处处体现,单一职责的定义:我们把职责定义为系统变化的原因.所有在定义类,接口,方法的时候.定义完以后再去想一想是不能多于一个的动机去改变这个类, ...

  10. List 循环删除 指定元素的 方法

    使用Iterator进行循环,在删除指定元素.如果使用for 或 foreach 在删除指定下标是,list.size 会相应的缩短且下标前移,导致相邻满足条件的元素未删除 Iterator<S ...