• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

spring-jfinal: 用于整合 spring + jfinal .

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

spring-jfinal

开源软件地址:

https://gitee.com/ylx252/spring-jfinal

开源软件介绍:

#spring-jfinal作用于 spring 和 jfinal(理论上支持所有版本) 的整合。

#依赖 jarjfinal、javassist v3.*、Spring v3+(3.2.0之前需要依赖cglib)

#使用 Maven

	<dependency>	  <groupId>cc.ecore</groupId>	  <artifactId>spring-jfinal-plugin</artifactId>	  <version>x.x.x</version>	</dependency>

1、web.xml

	<context-param>		<param-name>contextConfigLocation</param-name>		<param-value>WEB-INF/spring.xml</param-value>	</context-param>	<listener>		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>	</listener>    <filter>        <filter-name>jfinal</filter-name>    	<filter-class>com.jfinal.core.SpringJFinalFilter</filter-class>    	<init-param>    		<param-name>configClass</param-name>    		<param-value>com.demo.test.CommonConfig</param-value>    	</init-param>    </filter>    <filter-mapping>    	<filter-name>jfinal</filter-name>    	<url-pattern>/*</url-pattern>    </filter-mapping>

以上通过 SpringJFinalFilter 过滤器加载 spring 。其中 JfinalConfig 自动注册 springbean(JfinalConfig 中可以使用 注解注入属性哦,或者 实现 ApplicationContextAware 接口自动注入 ApplicationContext)。

初始化顺序(不配置 ContextLoaderListener 的情况下):SpringJFinalFilter -> ApplicationContext -> JFinal -> JFinalConfig ... (其他 照旧 ) .初始化顺序(配置 ContextLoaderListener 的情况下)。ApplicationContext -> SpringJFinalFilter -> JFinal -> JFinalConfig ... (其他 照旧 ) .

2、JFinalConfig

	public class HelloJFinalConfig extends JFinalConfig {			@Autowired		public void setApplicationContext(ApplicationContext ctx) {			System.out.println("HelloController attr[ApplicationContext] 已注入。。");		}		...	}

其中 HelloJFinalConfig 自动注入 springbean , scope = "singleton" .

3、Controller

	public class HelloController extends Controller {			@Autowired		public void setApplicationContext(ApplicationContext ctx) {			System.out.println("HelloController attr[ApplicationContext] 已注入。。");		}	}

其中 Controller 自动注入 springbean , scope = "prototype" 原因是 jfinal 也是每次请求创建实例 .

4、spring 事物管理

    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">		<property name="username" value="${db.userName}" />		<property name="password" value="${db.passWord}" />		<property name="url" value="${db.jdbcUrl}" />		<property name="driverClassName" value="${db.driverClassName}" />		<property name="initialSize" value="${db.initialSize}" />		<property name="maxActive" value="${db.maxActive}" />		<property name="minIdle" value="${db.minIdle}" />	</bean>	<!-- spring 事物管理 ,ActiveRecordPlugin可以获得此 dataSource 可以把事务交给spring 管理 -->	<bean id="dataSourceProxy" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">		<property name="targetDataSource" ref="druidDataSource" />	</bean>	<!-- ================================事务相关控制================================================= -->	<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">		<property name="dataSource" ref="dataSourceProxy"></property>	</bean>	<tx:advice id="txAdvice" transaction-manager="transactionManager">		<tx:attributes>			<tx:method name="delete*" propagation="REQUIRED" read-only="false" />			<tx:method name="insert*" propagation="REQUIRED" read-only="false" />			<tx:method name="update*" propagation="REQUIRED" read-only="false" />			<tx:method name="find*" propagation="SUPPORTS" />			<tx:method name="get*" propagation="SUPPORTS" />			<tx:method name="select*" propagation="SUPPORTS" />		</tx:attributes>	</tx:advice>	<!-- 把事务控制在Service层 -->	<aop:config>		<aop:pointcut id="pc" expression="execution(public * demo.service.*.*(..))" />		<aop:advisor pointcut-ref="pc" advice-ref="txAdvice" />	</aop:config>

以上是 xml 配置方式。 重点是在 ActiveRecordPlugin 中注入 代理数据源。

5、jetty 启动.

	public static void main(String[] args) {		CtFactory.toClass();// 这个必须启动前执行		// ...	}

6、更多支持


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap