搭建简单web项目:spring3.0基本配置
来源:互联网 发布:python读取csv文件 编辑:程序博客网 时间:2024/05/22 07:50
继续第一节的内容, 在配置完基础的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基本配置(2)
- 搭建简单web项目:spring3.0基本配置
- 搭建简单web项目: spring3.0基础配置(1)
- Spring3.0 基本配置
- spring3.0的基本配置
- Spring3-MVC的基本配置
- 用rest搭建简单web maven项目
- IntelliJ IDEA 最简单配置搭建Spring MVC Java web Maven项目
- maven基本配置及创建web项目
- springmvc 项目:web.xml基本配置
- eclipse 搭建web项目tomcat配置问题
- 模块化之Spring3.0 web fragment和gradle构建项目
- 【WEB开发技术】一个简单的WEB项目验证码校验(如何从前端到后台一步一步的搭建、配置、发布整个Web项目?)
- Proxool在web项目中的配置,以及与spring3、hibernate4的集成
- juno搭建Struts2+Hibernate4+Spring3项目
- 关于struts2+spring3+mybatis项目环境搭建
- 搭建SpringMVC+Hibernate4+Spring3+Ajax+Maven项目
- 搭建SpringMVC+Hibernate4+Spring3+Ajax+Maven项目
- SignalTap II逻辑分析仪的使用
- multipath
- SpringMVC之GET中文乱码解决方案
- 串的表示和实现javascript
- 初次使用SQLiteOpenHelper
- 搭建简单web项目:spring3.0基本配置
- CSDN新博客——Markdown语法测试
- Java面试--Spring技术要点--Spring概述
- OpenCV目标识别
- 一切成功源于积累——20150513 美国4月零售数据不及预期 黄金1192-1218 2600点 短短2个小时
- 程序员——C语言之数据类型、基本运算、流程控制 易错知识点
- 黑马程序员——c语言基础:循环结构练习
- 黑马程序员————网路编程UDP和TCP协议
- HDU2473 并查集的删除