搭建简单web项目:spring3.0基本配置(2)
2010-10-27 16:41
716 查看
本文为个人学习,记录,交流用. 欢迎大家讨论,提建议,补充或指出错误. 但请不要转载不打招呼.
继续第一节的内容, 在配置完基础的spring依赖注入后, 接来下把日志和数据库配置一下.
第一部分:log4j日志, 关于log4j和spring的配置,网上已经文章大把大把的了, 就简单说一下配置过程.
虽然common-logging就可以满足大多基本的日志需求, 不过这里还是引入一下log4j的配置. spring同时还支持SLF4J, 好吧我没说听过.
spring配置log4j
第一步:引入log4j的jar包. 写此文时最新版本已是log4j-1.2.16.jar, spring3.0附送的是log4j-1.2.15.jar.应该没什么差别.
第二步(可省):在web.xml里配置
这一步的作用就是让spring帮忙照料下log4j的配置文件管理, 如果跳过第二步, 这里其实就和spring没什么关系,就是单独使用log4j了. (虽然后台还有将log4j交由spring容器接管之类的,我们不用关心了.)
第三步: 写log4j的配置文件, 关于log4j如何配置,网上已有很多资料, 这里不细说了.
推荐一个eclipse下用log4e插件. 可以很方便的生成日志语句, 转换System.out等.
log4j.properties文件:
log4j.rootLogger= DEBUG, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
#org.apache.log4j.HTMLLayout
#org.apache.log4j.PatternLayout
#org.apache.log4j.SimpleLayout
#org.apache.log4j.TTCCLayout
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
#log4j.appender.FILE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] - %m%n
#这里的${myProject.root}是在第二步中配置出来的. 也可以写绝对路径
#log4j.appender.FILE.File=${myProject.root}/log/sqmslog.log
#log4j.appender.FILE2 = org.apache.log4j.RollingFileAppender
#log4j.appender.FILE2.MaxFileSize = 500KB
log4j.logger.org.springframework=WARN
log4j.logger.test=DEBUG
第二部分: spring-jdbc 数据库配置.
这里所需jar包为: (关于jndi方面的jar包未测试是否已包含)
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.jdbc-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
commons-logging-1.1.1.jar
commons-dbcp-1.3.jar
commons.pool-1.5.3.jar
当然,还有你要用的数据库的jdbc驱动包. 比如我这里用Mysql的mysql-connector-java-5.1.5-bin.jar
第二步:
这里使用的是将数据库信息写在文件jdbc.properties里, 你也可以将信息直接写在dataSource的bean属性里(将第一个bean去掉),
编辑spring的配置文件:
jdbc.properties文件 :
jdbc.driverClassName=org.gjt.mm.mysql.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mysqldb?useUnicode=true
jdbc.username=root
jdbc.password=
第三步:测试, 还是使用在上一节中的测试类, TestBo
这样就通过spring注入的dataSource在类中获得了JdbcTemplate, 这个对象基本就能帮你完成事务之外的各种数据库操作.具体操作方法这里不详述了,列出几个官方文档中给出的例子.
最后附上jndi的配置xml, 可能需要引入更多的jar包.
继续第一节的内容, 在配置完基础的spring依赖注入后, 接来下把日志和数据库配置一下.
第一部分:log4j日志, 关于log4j和spring的配置,网上已经文章大把大把的了, 就简单说一下配置过程.
虽然common-logging就可以满足大多基本的日志需求, 不过这里还是引入一下log4j的配置. spring同时还支持SLF4J, 好吧我没说听过.
spring配置log4j
第一步:引入log4j的jar包. 写此文时最新版本已是log4j-1.2.16.jar, spring3.0附送的是log4j-1.2.15.jar.应该没什么差别.
第二步(可省):在web.xml里配置
<context-param> <param-name>webAppRootKey</param-name> <param-value>myProject.root</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/conf/log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
这一步的作用就是让spring帮忙照料下log4j的配置文件管理, 如果跳过第二步, 这里其实就和spring没什么关系,就是单独使用log4j了. (虽然后台还有将log4j交由spring容器接管之类的,我们不用关心了.)
第三步: 写log4j的配置文件, 关于log4j如何配置,网上已有很多资料, 这里不细说了.
推荐一个eclipse下用log4e插件. 可以很方便的生成日志语句, 转换System.out等.
log4j.properties文件:
log4j.rootLogger= DEBUG, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
#org.apache.log4j.HTMLLayout
#org.apache.log4j.PatternLayout
#org.apache.log4j.SimpleLayout
#org.apache.log4j.TTCCLayout
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
#log4j.appender.FILE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] - %m%n
#这里的${myProject.root}是在第二步中配置出来的. 也可以写绝对路径
#log4j.appender.FILE.File=${myProject.root}/log/sqmslog.log
#log4j.appender.FILE2 = org.apache.log4j.RollingFileAppender
#log4j.appender.FILE2.MaxFileSize = 500KB
log4j.logger.org.springframework=WARN
log4j.logger.test=DEBUG
第二部分: spring-jdbc 数据库配置.
这里所需jar包为: (关于jndi方面的jar包未测试是否已包含)
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.jdbc-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
commons-logging-1.1.1.jar
commons-dbcp-1.3.jar
commons.pool-1.5.3.jar
当然,还有你要用的数据库的jdbc驱动包. 比如我这里用Mysql的mysql-connector-java-5.1.5-bin.jar
第二步:
这里使用的是将数据库信息写在文件jdbc.properties里, 你也可以将信息直接写在dataSource的bean属性里(将第一个bean去掉),
编辑spring的配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations" value="/WEB-INF/conf/jdbc.properties"/> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <bean id="TestBo" class="test.TestBo"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 省略其他 --> </beans>
jdbc.properties文件 :
jdbc.driverClassName=org.gjt.mm.mysql.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mysqldb?useUnicode=true
jdbc.username=root
jdbc.password=
第三步:测试, 还是使用在上一节中的测试类, TestBo
public class TestBo { private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } }
这样就通过spring注入的dataSource在类中获得了JdbcTemplate, 这个对象基本就能帮你完成事务之外的各种数据库操作.具体操作方法这里不详述了,列出几个官方文档中给出的例子.
//queryForInt int countOfActorsNamedJoe = this.jdbcTemplate.queryForInt( "select count(*) from t_actor where first_name = ?", "Joe"); //queryForString String lastName = this.jdbcTemplate.queryForObject( "select last_name from t_actor where id = ?", new Object[]{1212L}, String.class); // queryForObject Actor actor = this.jdbcTemplate.queryForObject( "select first_name, last_name from t_actor where id = ?", new Object[]{1212L}, new RowMapper<Actor>() { public Actor mapRow(ResultSet rs, int rowNum) throws SQLException { Actor actor = new Actor(); actor.setFirstName(rs.getString("first_name")); actor.setLastName(rs.getString("last_name")); return actor; } }); //queryForObjectList List<Actor> actors = this.jdbcTemplate.query( "select first_name, last_name from t_actor", new RowMapper<Actor>() { public Actor mapRow(ResultSet rs, int rowNum) throws SQLException { Actor actor = new Actor(); actor.setFirstName(rs.getString("first_name")); actor.setLastName(rs.getString("last_name")); return actor; } }); //another queryForObjectList public List<Actor> findAllActors() { return this.jdbcTemplate.query( "select first_name, last_name from t_actor", new ActorMapper()); } private static final class ActorMapper implements RowMapper<Actor> { public Actor mapRow(ResultSet rs, int rowNum) throws SQLException { Actor actor = new Actor(); actor.setFirstName(rs.getString("first_name")); actor.setLastName(rs.getString("last_name")); return actor; } } //update and delete this.jdbcTemplate.update( "update t_actor set = ? where id = ?", "Banjo", 5276L); )
最后附上jndi的配置xml, 可能需要引入更多的jar包.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd"> <jee:jndi-lookup id="dataSource" jndi-name="jdbc/jpetstore"/> <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager" /> <!-- other <bean/> definitions here --> </beans>
相关文章推荐
- 搭建简单web项目: spring3.0基础配置(1)
- ssh项目中,对于spring的bean.xml和web.xml文件的基本配置
- Activiti环境配置、项目搭建、与Spring集成、简单示例
- spring 在web项目中的一些基本配置
- idea+maven+springboot搭建web简单项目经历小计(RestController)
- 从零开始搭建maven+springmvc+mybatis web项目(2)---springmvc配置文件编写
- 用Spring Boot搭建简单web项目
- 搭建简单web项目:spring3.0基本配置
- Activiti环境配置、项目搭建、与Spring集成、简单示例
- web项目取得spring配置的数据源的简单实现方法
- Java maven项目的搭建,配置web框架以及Spring
- Activiti环境配置、项目搭建、与Spring集成、简单示例
- 【WEB开发技术】一个简单的WEB项目验证码校验(如何从前端到后台一步一步的搭建、配置、发布整个Web项目?)
- Activiti环境配置、项目搭建、与Spring集成、简单示例
- SpringBoot1-spirng项目快速搭建+maven+spring的基本配置
- spring 配置一个基本的web项目
- Web项目Spring基本配置
- ssh项目搭建时,Spring的bean的基本配置
- easyui 1.5+spring 4.2+mybatis 3.4 Web示例(三) 项目搭建之配置的导入
- j2ee 简单网站搭建:(三)在搭建好的 spring maven web 项目中加入 mybatis 访问数据库