在使用hibernate或者spring的时候,我们往往通过配置文件配置数据库连接属性。但这次项目中并没有用到hibernate和spring,只用到了struts2。要如何实现通过读取文件配置获取属性值呢?
方式一:ResourceBundle这个类可是实现读取properties文件来获取值
在java中:
public class ResourceBundleReader {
public final static Object initLock = new Object();
private final static String PROPERTIES_FILE_NAME = "property";
private static ResourceBundle bundle = null;
static {
try {
if (bundle == null) {
synchronized (initLock) {
if (bundle == null)
bundle = ResourceBundlegetBundle(PROPERTIES_FILE_NAME,LocaleCHINA);
}
}
} catch (Exception e) {
Systemoutprintln("读取资源文件property_zhproperties失败!");
}
}
public static ResourceBundle getBundle() {
return bundle;
}
public static void setBundle(ResourceBundle bundle) {
bundle = bundle;
}
}
在properties文件中:
driverName=commysqljdbcDriver
url=xxxxx/:3307/9zgame
user=root
password=xxxxxx
文件名字为:property_zhproperties。后zh根据LocaleCHINA一致的,如果LocaleENGLISH,则文件名为:property_enproperties
方式二:使用commons组件。
这个是severlet的东西,你在webxml应该配置了一个过滤器。如果没有,spring好像也可以产生过滤器了,至少springboot我用过。
每个请求都有request和response,默认的情况下,使用spring后,是直接传给spring去处理了。
你添加过滤器后,这个请求先到了filter里面,你把filter拿到的request和response做了一次封装后,使用dofilter继续执行。
dofilter之后,response就是请求之后应该返回的结果,对它处理就可以统一改变返回值。
你的应该是Spring获得数据库连接对象的类。
(SpringFramework504RELEASEAPI)
在Java数据库 *** 作的框架中,不论是Spring,Struts,或者你自己写的连接控制也不管你是否集成连接池,比如说C3P0。
一般来说,都是先要获得数据库的链接。
在这里你的连接在Connection里面。
获得连接后才能对数据库进行 *** 作。
1:SSM框架搭建环境
Spring、SpringMVC、mybatis添加上我们需要的jar包
2:编写数据库sql,创建表
创建数据库表了
3:连接数据库
dataSourcedriverClass=commysqljdbcDriver
dataSourcejdbcUrl=jdbc:mysql://127001:3306/works
dataSourceuser=root
dataSourcepassword=195631
dataSourcemaxPoolSize=20
dataSourcemaxIdleTime=1000
dataSourceminPoolSize=6
dataSourceinitialPoolSize=5
4:写java代码,分层
控制层、业务层、数据库层、数据层
5: 写jsp页面
6:Spring的配置文件
<!-- mybatis:scan会将orgfkitmapper包里的所有接口当作mapper配置,之后可以自动引入mapper类-->
<mybatis:scan base-package="comcyMapper" />
<!-- 扫描comwyq包下面的java文件,有Spring的相关注解的类,则把这些类注册为Spring的bean -->
<context:component-scan base-package="comcy" />
<!-- 使用PropertyOverrideConfigurer后处理器加载数据源参数 -->
<context:property-override location="classpath:dbproperties"/>
<!-- 配置c3p0数据源 -->
<bean id="dataSource" class="commchangev2c3p0ComboPooledDataSource"/>
<!-- 配置SqlSessionFactory,orgmybatisspringSqlSessionFactoryBean是Mybatis社区开发用于整合Spring的bean -->
<bean id="sqlSessionFactory" class="orgmybatisspringSqlSessionFactoryBean"
p:dataSource-ref="dataSource"/>
<!-- JDBC事务管理器 -->
<bean id="transactionManager"
class="orgspringframeworkjdbcdatasourceDataSourceTransactionManager"
p:dataSource-ref="dataSource"/>
<!-- 启用支持annotation注解方式事务管理 -->
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>
7:springmvc的配置文件
<!-- 自动扫描该包,SpringMVC会将包下用了@controller注解的类注册为Spring的controller -->
<context:component-scan base-package="comwyqController" />
<!-- 设置默认配置方案 -->
<mvc:annotation-driven />
<!-- 使用默认的Servlet来响应静态文件比如css、html、js等文件 -->
<mvc:default-servlet-handler />
<!-- 视图解析器 -->
<bean id="viewResolver" class="orgspringframeworkwebservletviewInternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<!-- 后缀 -->
<property name="suffix">
<value>jsp</value>
</property>
</bean>
8:webxml配置
<!-- 配置spring核心监听器,默认会以 /WEB-INF/applicationContextxml作为配置文件 -->
<listener>
<listener-class>orgspringframeworkwebcontextContextLoaderListener</listener-class>
</listener>
<!-- contextConfigLocation参数用来指定Spring的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContextxml</param-value>
</context-param>
<!-- 定义Spring MVC的前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
orgspringframeworkwebservletDispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-configxml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 让Spring MVC的前端控制器拦截所有请求 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 编码过滤器 -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>orgspringframeworkwebfilterCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
</web-app>
在 我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。我们以往 在 spring 和 hibernate 框架中总是配置一个数据源,因而 sessionFactory 的dataSource 属性总是指向这个
在springmvc中controller的结果集可通过json格式传到js前端接受,也可以通过Map传给前端,具体实现如下
1,通过json格式传递
controller层实现如下
@RequestMapping("queryCityInfo")
@ResponseBody
public String queryCityInfo()throws Exception{
String provinceId = getString("id");
@SuppressWarnings("rawtypes")
List cityList = personalServicequeryCity(provinceId);
if(null != cityList && cityListsize() >0 ){
String json = JSONUtilstoJSONString(cityList);
superoutStr(json);
}
return null;
}
protected void outStr(String str)</span>
{
try
{
responsesetCharacterEncoding("UTF-8");
responsegetWriter()write(str);
}
catch (Exception e)
{
}
}
public static <T> String toJSONString(List<T> list)
{
JSONArray jsonArray = JSONArrayfromObject(list);
return jsonArraytoString();
}
js端接受如下
function selectBankCity(id){
$ajax({
url:baseAddress+"queryCityInfodoprovinceId="+id,
type:'get',
dataType:'json',
success:function(data){
$('#custBankArea')empty();
$('#custBankArea')append("<option >--请选择城市信息--</option>");
for(var i=0;i<datalength;i++){
$('#custBankArea')append("<option value='"+scjgcjcomdata[i]id+"'>"+data[i]cityName+"</option>");
}
}
});
}
2,通过Map传递
controller层实现如下
@RequestMapping("queryProvince")
@ResponseBody
public Map<String, Object> queryProvince(>
也许可以这样,你需要返回一个json,这个json由一个对象呗@ResponseBody自动序列生成,然后,你试着将这个对象保存进model里面,mvsetObject("xx",xx);然后在拦截器中拦截未返回的的那个方法中model里面的对象做处理,对象是引用,这里改了
以上就是关于springmvc中怎么从配置文件中读取信息全部的内容,包括:springmvc中怎么从配置文件中读取信息、spring中response的原理,何时何地获取到outputstream中的数据返回的、spring中为什么是通过连接获取 *** 作数据库的对象(springmvc连接数据库)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)