- 学习提要
- (1)掌握项目的配置文件的配置方法,主要包括数据库配置,MVC配置,插件配置,Action,API,Service,Redis配置等
- 1、fsr.properties
开发框架的全局配置文件,在各个中间件模块均可能用到配置示例:
##### dao配置 #####
#SQL语句是否在执行期间输出到控制台
fsr.dao.debug=true
#HttpClient是否调试输出请求过程数据
fsr.httpClient.debug=true
- Java读取httpClient的调试参数设置示例
String isHttpDebug = App.getConfig().getString("fsr.httpClient.debug");
System.out.println(isHttpDebug);
1. 数据库配置:
- fsr-connections.xml
- 数据库连接配置文件,可定义多个数据源
配置示例
- 数据库连接配置文件,可定义多个数据源
<?xml version='1.0' encoding='UTF-8'?>
<connections
xsi:schemaLocation="http://www.farseersoft.com/farseer/connections http://www.farseersoft.com/xsd/connections-4.0.xsd"
xmlns="http://www.farseersoft.com/farseer/connections"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- MySQL -->
<connection name="default">
<property name="driver">com.mysql.jdbc.Driver</property>
<property name="url">jdbc:mysql://localhost:3306/fsr4_demo?characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull</property>
<property name="username">root</property>
<property name="password">123456</property>
</connection>
<!-- oracle -->
<connection name="oracle">
<property name="driver">oracle.jdbc.OracleDriver</property>
<property name="url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="username">fsr4_demo</property>
<property name="password">123456</property>
</connection>
<!-- mssql -->
<connection name="mssql">
<property name="driver">net.sourceforge.jtds.jdbc.Driver</property>
<property name="url">jdbc:jtds:sqlserver://localhost;DatabaseName=fsr4_demo</property>
<property name="username">sa</property>
<property name="password">123456</property>
</connection>
<!-- SQLite -->
<connection name="SQLite">
<property name="driver">org.sqlite.JDBC</property>
<property name="url">jdbc:sqlite:D:/sqlite_db/fsr4_demo.db</property>
</connection>
</connections>
2. MVC配置:
- fsr-mvc.xml
- MVC配置文件
- 配置示例
<?xml version='1.0' encoding='UTF-8'?>
false
false
false
false
index.jsp
login.jsp
workbench.jsp
<path>/help</path>
<path>/web</path>
<path>/wap</path>
<path>/test</path>
<path>/api</path>
<path>/action/dm</path>
<action></action>
</security-ignored>
</settings>
```
3. 插件配置:
fsr-plugins.xml
<?xml version="1.0" encoding="UTF-8"?>
<plugins xsi:schemaLocation="http://www.farseersoft.com/farseer/plugins http://www.farseersoft.com/xsd/plugins-4.0.xsd" xmlns="http://www.farseersoft.com/farseer/plugins"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Web - UI后端插件 -->
<plugin id="WebActivator" activator="com.farseersoft.web.WebActivator">
<property name="appCode">demo</property>
</plugin>
<!-- Sys - 权限管理系统插件 -->
<plugin id="SysActivator" activator="com.farseersoft.sys.SysActivator" />
<plugin id="DemoActivator" activator="com.farseersoft.demo.DemoActivator" />
</plugins>
- 在项目下新建包com.farseercoft.activators
- 新建插件类,代码如下:
package com.farseersoft.activators;
import com.farseersoft.annotation.Activator;
import com.farseersoft.plugins.BundleContext;
import com.farseersoft.plugins.IActivator;
@Activator
public class TestActivator implements IActivator {
@Override
public void start(BundleContext context) throws Exception {
System.out.println("启动TestActivator...");
}
@Override
public void stop(BundleContext context) throws Exception {
}
}
注意:com.farseersoft.activators是框架约定的包,框架会自动从这个包扫描插件类并完成自动注册
4. Action:
Actions退回件使用包扫描方式进行注册,但需注意的是只能进行扫描当前配置的包路径,子路径的Action类会被忽略,另外Action类也必须以Action类也必须以Action结尾,否则也会被忽略。
<?xml version="1.0" encoding="UTF-8"?>
<actions xsi:schemaLocation="http://www.farseersoft.com/farseer/actions http://www.farseersoft.com/xsd/actions-4.0.xsd" xmlns="http://www.farseersoft.com/farseer/actions"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<action-scan name="dm" base-package="com.farseersoft.demo.actions" />
<action-scan name="sp" base-package="com.farseersoft.sample.actions" />
<action-scan name="cms" base-package="com.farseersoft.cms.actions" />
</actions>
5. API:
API推荐使用包扫描的方式进行注册,但需主义的是只能扫描当前配置的包路径。
配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<apis xsi:schemaLocation="http://www.farseersoft.com/farseer/apis http://www.farseersoft.com/xsd/apis-4.0.xsd" xmlns="http://www.farseersoft.com/farseer/apis"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- 扫描com.farseersoft.demo.apis包下的所有Java类 -->
<api-scan base-package="com.farseersoft.demo.apis" />
<api-scan base-package="com.farseersoft.cms.apis" />
</apis>
6. Service:
fsr-services.xml
<?xml version="1.0" encoding="UTF-8"?>
<services
xsi:schemaLocation="http://www.farseersoft.com/farseer/services http://www.farseersoft.com/xsd/services-4.0.xsd"
xmlns="http://www.farseersoft.com/farseer/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- demo service -->
<service-scan
base-package="com.farseersoft.demo.service.impl" />
</services>
7. Redis配置:
- redis连接配置:
fsr-redis.xml
<?xml version="1.0" encoding="UTF-8"?>
<redis xsi:schemaLocation="http://www.farseersoft.com/farseer/redis http://www.farseersoft.com/xsd/redis-4.0.xsd" xmlns="http://www.farseersoft.com/farseer/redis"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<redis-cluster>
<server host="localhost" port="6379" password="fsr123"/>
</redis-cluster>
</redis>
- Jedis连接池配置
fsr-redis-beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xsi:schemaLocation="http://www.farseersoft.com/farseer/beans http://www.farseersoft.com/xsd/beans-4.0.xsd" xmlns="http://www.farseersoft.com/farseer/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Jedis连接池配置, 可以写在资源文件中 -->
<bean name="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大连接数 -->
<property name="maxTotal" value="30" />
<!-- 最大空闲连接数 -->
<property name="maxIdle" value="10" />
<!-- 每次释放连接的最大数目 -->
<property name="numTestsPerEvictionRun" value="1024" />
<!-- 释放连接的扫描间隔(毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="30000" />
<!-- 连接最小空闲时间 -->
<property name="minEvictableIdleTimeMillis" value="1800000" />
<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
<property name="softMinEvictableIdleTimeMillis" value="10000" />
<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
<property name="maxWaitMillis" value="1500" />
<!-- 在获取连接的时候检查有效性, 默认false -->
<property name="testOnBorrow" value="true" />
<!-- 在空闲时检查有效性, 默认false -->
<property name="testWhileIdle" value="true" />
<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
<property name="blockWhenExhausted" value="false" />
</bean>
</beans>