Jfinal集成Spring


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM