# spring-jfinal
**Repository Path**: sky_zy/spring-jfinal
## Basic Information
- **Project Name**: spring-jfinal
- **Description**: 用于整合 spring + jfinal .
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 24
- **Created**: 2016-06-12
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#spring-jfinal
作用于 spring 和 jfinal(理论上支持所有版本) 的整合。
#依赖 jar
jfinal、javassist v3.*、Spring v3+(3.2.0之前需要依赖cglib)
#使用 Maven
```xml 
	
	  cc.ecore
	  spring-jfinal-plugin
	  x.x.x
	
```
## 1、web.xml 
```xml 
	
		contextConfigLocation
		WEB-INF/spring.xml
	
	
		org.springframework.web.context.ContextLoaderListener
	
    
        jfinal
    	com.jfinal.core.SpringJFinalFilter
    	
    		configClass
    		com.demo.test.CommonConfig
    	
    
    
    	jfinal
    	/*
    
```
以上通过 SpringJFinalFilter 过滤器加载 spring 。
其中 JfinalConfig 自动注册 springbean(JfinalConfig 中可以使用 注解注入属性哦,或者 实现 ApplicationContextAware  接口自动注入 ApplicationContext)。
初始化顺序(不配置 ContextLoaderListener 的情况下):
	SpringJFinalFilter -> ApplicationContext -> JFinal -> JFinalConfig ... (其他 照旧 ) .
初始化顺序(配置 ContextLoaderListener 的情况下)。
	ApplicationContext -> SpringJFinalFilter -> JFinal -> JFinalConfig ... (其他 照旧 ) .
## 2、JFinalConfig
``` java
	public class HelloJFinalConfig extends JFinalConfig {
	
		@Autowired
		public void setApplicationContext(ApplicationContext ctx) {
			System.out.println("HelloController attr[ApplicationContext] 已注入。。");
		}
		...
	}
```
其中 HelloJFinalConfig 自动注入 springbean , scope = "singleton" .
## 3、Controller
``` java
	public class HelloController extends Controller {
	
		@Autowired
		public void setApplicationContext(ApplicationContext ctx) {
			System.out.println("HelloController attr[ApplicationContext] 已注入。。");
		}
	}
```
其中 Controller 自动注入 springbean , scope = "prototype" 原因是 jfinal 也是每次请求创建实例 .
## 4、spring 事物管理
```xml
    
		
		
		
		
		
		
		
	
	
	
		
	
	
	
		
	
	
		
			
			
			
			
			
			
		
	
	
	
		
		
	
```
以上是 xml 配置方式。 重点是在 ActiveRecordPlugin 中注入 代理数据源。
## 5、jetty 启动.
``` java
	public static void main(String[] args) {
		CtFactory.toClass();// 这个必须启动前执行
		// ...
	}
```
## 6、更多支持
- oschina [开源社区 ](http://www.oschina.net/p/spring-jfinal)
- JFinal [官方网站 ](http://www.jfinal.com/) 
- 关注官方微信号马上体验 demo 功能  
