- 浏览: 38277 次
- 性别:
- 来自: 北京
最新评论
-
on-the-way:
很精辟啊
最近仔细研究了一下Java的NIO以及线程并发,搞清了点思路,特作笔记如下(NIO篇) -
wdlfellow:
现在需要在项目中做单元测试了,学习mock中。。。
junit 中的mock 使用摘记
1,doman
package com.baobaotao.domain;
import java.io.Serializable;
import java.util.Date;
public class LoginLog implements Serializable {
private int loginLogId;
private int userId;
private String ip;
private Date loginDate;
....省略getter ,setter 方法
}
package com.baobaotao.domain;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
private int userId;
private String userName;
private String password;
private int credits;
private String lastIp;
private Date lastVisit;
.....省略getter,setter方法
}
2.dao
package com.baobaotao.dao;
import com.baobaotao.domain.LoginLog;
//
public interface LoginLogDao {
public void insertLoginLog(LoginLog loginLog);
}
package com.baobaotao.dao;
import com.baobaotao.domain.User;
public interface UserDao {
public int getMatchCount(String userName,String password);
public User findUserByUserName(String userName);
public void updateLoginInfo(User user);
}
package com.baobaotao.dao.jdbc;
import org.springframework.jdbc.core.JdbcTemplate;
import com.baobaotao.dao.LoginLogDao;
import com.baobaotao.domain.LoginLog;
public class LogonLogDaoImpl implements LoginLogDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate=jdbcTemplate;
}
public void insertLoginLog(LoginLog loginLog) {
String sqlStr=" insert into t_login_log(user_id,ip,login_datetime) "
+" values(?,?,?) ";
Object[] args={loginLog.getUserId(),loginLog.getIp(),loginLog.getLoginDate()};
jdbcTemplate.update(sqlStr,args);
}
}
package com.baobaotao.dao.jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import com.baobaotao.dao.UserDao;
import com.baobaotao.domain.User;
public class UserDaoImpl implements UserDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate=jdbcTemplate;
}
public User findUserByUserName(final String userName) {
String sqlStr=" select user_id,user_name,credits "+
" from t_user where user_name=? ";
final User user=new User();
jdbcTemplate.query(sqlStr, new Object[]{userName},new RowCallbackHandler(){
public void processRow(ResultSet rs)throws SQLException{
user.setUserId(rs.getInt("user_id"));
user.setUserName(userName);
user.setCredits(rs.getInt("credits"));
}
});
return user;
}
public int getMatchCount(String userName, String password) {
String sqlStr=" select count(*) from t_user "+
" where user_name=? and password=? ";
return jdbcTemplate.queryForInt(sqlStr, new Object[]{userName,password});
}
public void updateLoginInfo(User user) {
String sqlStr=" update t_user set last_visit=?,last_ip=?,credits=? "
+" where user_id=? ";
jdbcTemplate.update(sqlStr,new Object[]{user.getLastVisit(),user.getLastIp(),user.getCredits(),user.getUserId()});
}
}
3,service
package com.baobaotao.service;
import com.baobaotao.dao.LoginLogDao;
import com.baobaotao.dao.UserDao;
import com.baobaotao.domain.User;
public interface UserService {
//����û���/�������ȷ��
public boolean hasMatchUser(String userName,String password);
//���û���Ϊ�������User����
public User findUserByUserName(String userName);
//�����û�����½ʱ���IP��Ϣ,ͬʱ��¼�û���¼��־
public void loginSuccess(User user);
}
package com.baobaotao.service;
import com.baobaotao.dao.LoginLogDao;
import com.baobaotao.dao.UserDao;
import com.baobaotao.domain.LoginLog;
import com.baobaotao.domain.User;
public class UserServiceImpl implements UserService {
private UserDao userDao;
private LoginLogDao loginLogDao;
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
public void setLoginLogDao(LoginLogDao loginLogDao){
this.loginLogDao=loginLogDao;
}
public User findUserByUserName(String userName) {
// TODO Auto-generated method stub
return userDao.findUserByUserName(userName);
}
public boolean hasMatchUser(String userName, String password) {
// TODO Auto-generated method stub
int matchCount=userDao.getMatchCount(userName, password);
return matchCount>0;
}
public void loginSuccess(User user) {
user.setCredits(5+user.getCredits());
LoginLog loginLog=new LoginLog();
loginLog.setUserId(user.getUserId());
loginLog.setIp(user.getLastIp());
loginLog.setLoginDate(user.getLastVisit());
userDao.updateLoginInfo(user);
loginLogDao.insertLoginLog(loginLog);
}
}
4,web
package com.baobaotao.web;
public class LoginCommand {
private String userName;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
package com.baobaotao.web;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import com.baobaotao.domain.User;
import com.baobaotao.service.UserService;
public class LoginController extends AbstractCommandController {
private UserService userService;
public LoginController() {
setCommandClass(LoginCommand.class);
}
public void setUserService(UserService userService) {
this.userService = userService;
}
@Override
protected ModelAndView handle(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
LoginCommand loginCommand = (LoginCommand) command;
boolean isValidUser = userService.hasMatchUser(loginCommand
.getUserName(), loginCommand.getPassword());
if (!isValidUser) {
return new ModelAndView("login", "error", "用户名或密码错误。");
} else {
User user = userService.findUserByUserName(loginCommand
.getUserName());
user.setLastIp(request.getLocalAddr());
user.setLastVisit(new Date());
userService.loginSuccess(user);
request.getSession().setAttribute("user", user);
return new ModelAndView("main");
}
}
}
package com.baobaotao.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class LoginPage extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("login");
}
}
5.装配dao
baobaotao-dao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- 配置数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/sampledb"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<!-- 配置jdbc模板 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置dao -->
<bean id="loginLogDao"
class="com.baobaotao.dao.jdbc.LogonLogDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
<bean id="userDao"
class="com.baobaotao.dao.jdbc.UserDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</beans>
baobaotao-service.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="userSerivceTarget"
class="com.baobaotao.service.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
<property name="loginLogDao" ref="loginLogDao"></property>
</bean>
<!-- 声明式事务 -->
<bean id="userService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"></property>
<property name="target" ref="userSerivceTarget"></property>
<property name="transactionAttributes">
<props>
<prop key="findUserByUserName">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="hasMatchUser">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="loginSuccess">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>
log4j.properties
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
baobaotao-servlet.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean name="loginController"
class="com.baobaotao.web.LoginController">
<property name="userService" ref="userService"></property>
</bean>
<bean name="loginPage"
class="com.baobaotao.web.LoginPage">
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/loginController.html">loginController</prop>
<prop key="/index.html">loginPage</prop>
</props>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:baobaotao-dao.xml,classpath:baobaotao-service.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>baobaotao</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>baobaotao</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
build.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
编译worklog中的数据库连接
-->
<project basedir="." default="build" name="baobaotao">
<!-- 定义变量 -->
<property name="project.name" value="baobaotao" />
<property name="src.dir" value="src" />
<!-- Java源文件目录 -->
<!-- 编译好的类及生成的javadoc文档目录 -->
<property name="build.dir" value="WebRoot/WEB-INF/classes" />
<property name="weblib.dir" value="WebRoot/WEB-INF/lib" />
<property name="war.dir" value="WebRoot" />
<property name="dist.dir" value="dist" />
<property name="spring.root" value="../spring" />
<property name="jdbclib.root" value="../extraLib/jdbclib" />
<!-- 用到的外部类包,即classpath -->
<path id="project.class.path">
<fileset dir="${spring.root}/dist">
<include name="spring.jar" />
</fileset>
<fileset dir="${spring.root}/lib/log4j">
<include name="log4j-1.2.14.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-commons">
<include name="commons-dbcp.jar" />
<include name="commons-logging.jar" />
<include name="commons-pool.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-taglibs">
<include name="standard.jar" />
</fileset>
<fileset dir="${spring.root}/lib/j2ee">
<include name="servlet-api.jar" />
<include name="jstl.jar" />
</fileset>
</path>
<target name="build" depends="clean,warfile">
</target>
<target name="clean" description="Clean output dirs (build, weblib, dist)">
<delete dir="${build.dir}" />
<delete dir="${weblib.dir}" />
<delete dir="${dist.dir}" />
</target>
<target name="compile" description="编译java">
<mkdir dir="${build.dir}" />
<javac destdir="${build.dir}" srcdir="${src.dir}">
<compilerarg line="-encoding UTF-8" />
<classpath refid="project.class.path" />
</javac>
<copy todir="${build.dir}">
<fileset dir="${src.dir}">
<include name="**/*.properties" />
<include name="**/*.xml" />
</fileset>
</copy>
<mkdir dir="${weblib.dir}" />
<copy todir="${weblib.dir}" preservelastmodified="true">
<fileset dir="${spring.root}/dist">
<include name="spring.jar" />
</fileset>
<fileset dir="${spring.root}/lib/log4j">
<include name="log4j-1.2.14.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-commons">
<include name="commons-dbcp.jar" />
<include name="commons-logging.jar" />
<include name="commons-pool.jar" />
</fileset>
<fileset dir="${spring.root}/lib/j2ee">
<include name="jstl.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-taglibs">
<include name="standard.jar" />
</fileset>
<fileset dir="${jdbclib.root}">
<include name="mysql.jar" />
</fileset>
</copy>
</target>
<target name="warfile" depends="compile" description="创建Web应用程序War包">
<mkdir dir="${dist.dir}" />
<war warfile="${dist.dir}/${project.name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
<include name="*" />
<include name="images/**" />
<include name="WEB-INF/*.*" />
<include name="WEB-INF/lib/**" />
<include name="WEB-INF/jsp/**" />
<include name="WEB-INF/classes/**" />
<exclude name="WEB-INF/web.xml" />
<exclude name="**/.*" />
</war>
</target>
</project>
package com.baobaotao.domain;
import java.io.Serializable;
import java.util.Date;
public class LoginLog implements Serializable {
private int loginLogId;
private int userId;
private String ip;
private Date loginDate;
....省略getter ,setter 方法
}
package com.baobaotao.domain;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
private int userId;
private String userName;
private String password;
private int credits;
private String lastIp;
private Date lastVisit;
.....省略getter,setter方法
}
2.dao
package com.baobaotao.dao;
import com.baobaotao.domain.LoginLog;
//
public interface LoginLogDao {
public void insertLoginLog(LoginLog loginLog);
}
package com.baobaotao.dao;
import com.baobaotao.domain.User;
public interface UserDao {
public int getMatchCount(String userName,String password);
public User findUserByUserName(String userName);
public void updateLoginInfo(User user);
}
package com.baobaotao.dao.jdbc;
import org.springframework.jdbc.core.JdbcTemplate;
import com.baobaotao.dao.LoginLogDao;
import com.baobaotao.domain.LoginLog;
public class LogonLogDaoImpl implements LoginLogDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate=jdbcTemplate;
}
public void insertLoginLog(LoginLog loginLog) {
String sqlStr=" insert into t_login_log(user_id,ip,login_datetime) "
+" values(?,?,?) ";
Object[] args={loginLog.getUserId(),loginLog.getIp(),loginLog.getLoginDate()};
jdbcTemplate.update(sqlStr,args);
}
}
package com.baobaotao.dao.jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import com.baobaotao.dao.UserDao;
import com.baobaotao.domain.User;
public class UserDaoImpl implements UserDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate=jdbcTemplate;
}
public User findUserByUserName(final String userName) {
String sqlStr=" select user_id,user_name,credits "+
" from t_user where user_name=? ";
final User user=new User();
jdbcTemplate.query(sqlStr, new Object[]{userName},new RowCallbackHandler(){
public void processRow(ResultSet rs)throws SQLException{
user.setUserId(rs.getInt("user_id"));
user.setUserName(userName);
user.setCredits(rs.getInt("credits"));
}
});
return user;
}
public int getMatchCount(String userName, String password) {
String sqlStr=" select count(*) from t_user "+
" where user_name=? and password=? ";
return jdbcTemplate.queryForInt(sqlStr, new Object[]{userName,password});
}
public void updateLoginInfo(User user) {
String sqlStr=" update t_user set last_visit=?,last_ip=?,credits=? "
+" where user_id=? ";
jdbcTemplate.update(sqlStr,new Object[]{user.getLastVisit(),user.getLastIp(),user.getCredits(),user.getUserId()});
}
}
3,service
package com.baobaotao.service;
import com.baobaotao.dao.LoginLogDao;
import com.baobaotao.dao.UserDao;
import com.baobaotao.domain.User;
public interface UserService {
//����û���/�������ȷ��
public boolean hasMatchUser(String userName,String password);
//���û���Ϊ�������User����
public User findUserByUserName(String userName);
//�����û�����½ʱ���IP��Ϣ,ͬʱ��¼�û���¼��־
public void loginSuccess(User user);
}
package com.baobaotao.service;
import com.baobaotao.dao.LoginLogDao;
import com.baobaotao.dao.UserDao;
import com.baobaotao.domain.LoginLog;
import com.baobaotao.domain.User;
public class UserServiceImpl implements UserService {
private UserDao userDao;
private LoginLogDao loginLogDao;
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
public void setLoginLogDao(LoginLogDao loginLogDao){
this.loginLogDao=loginLogDao;
}
public User findUserByUserName(String userName) {
// TODO Auto-generated method stub
return userDao.findUserByUserName(userName);
}
public boolean hasMatchUser(String userName, String password) {
// TODO Auto-generated method stub
int matchCount=userDao.getMatchCount(userName, password);
return matchCount>0;
}
public void loginSuccess(User user) {
user.setCredits(5+user.getCredits());
LoginLog loginLog=new LoginLog();
loginLog.setUserId(user.getUserId());
loginLog.setIp(user.getLastIp());
loginLog.setLoginDate(user.getLastVisit());
userDao.updateLoginInfo(user);
loginLogDao.insertLoginLog(loginLog);
}
}
4,web
package com.baobaotao.web;
public class LoginCommand {
private String userName;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
package com.baobaotao.web;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import com.baobaotao.domain.User;
import com.baobaotao.service.UserService;
public class LoginController extends AbstractCommandController {
private UserService userService;
public LoginController() {
setCommandClass(LoginCommand.class);
}
public void setUserService(UserService userService) {
this.userService = userService;
}
@Override
protected ModelAndView handle(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
LoginCommand loginCommand = (LoginCommand) command;
boolean isValidUser = userService.hasMatchUser(loginCommand
.getUserName(), loginCommand.getPassword());
if (!isValidUser) {
return new ModelAndView("login", "error", "用户名或密码错误。");
} else {
User user = userService.findUserByUserName(loginCommand
.getUserName());
user.setLastIp(request.getLocalAddr());
user.setLastVisit(new Date());
userService.loginSuccess(user);
request.getSession().setAttribute("user", user);
return new ModelAndView("main");
}
}
}
package com.baobaotao.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class LoginPage extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("login");
}
}
5.装配dao
baobaotao-dao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- 配置数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/sampledb"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<!-- 配置jdbc模板 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置dao -->
<bean id="loginLogDao"
class="com.baobaotao.dao.jdbc.LogonLogDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
<bean id="userDao"
class="com.baobaotao.dao.jdbc.UserDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</beans>
baobaotao-service.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="userSerivceTarget"
class="com.baobaotao.service.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
<property name="loginLogDao" ref="loginLogDao"></property>
</bean>
<!-- 声明式事务 -->
<bean id="userService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"></property>
<property name="target" ref="userSerivceTarget"></property>
<property name="transactionAttributes">
<props>
<prop key="findUserByUserName">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="hasMatchUser">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="loginSuccess">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>
log4j.properties
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
baobaotao-servlet.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean name="loginController"
class="com.baobaotao.web.LoginController">
<property name="userService" ref="userService"></property>
</bean>
<bean name="loginPage"
class="com.baobaotao.web.LoginPage">
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/loginController.html">loginController</prop>
<prop key="/index.html">loginPage</prop>
</props>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:baobaotao-dao.xml,classpath:baobaotao-service.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>baobaotao</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>baobaotao</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
build.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
编译worklog中的数据库连接
-->
<project basedir="." default="build" name="baobaotao">
<!-- 定义变量 -->
<property name="project.name" value="baobaotao" />
<property name="src.dir" value="src" />
<!-- Java源文件目录 -->
<!-- 编译好的类及生成的javadoc文档目录 -->
<property name="build.dir" value="WebRoot/WEB-INF/classes" />
<property name="weblib.dir" value="WebRoot/WEB-INF/lib" />
<property name="war.dir" value="WebRoot" />
<property name="dist.dir" value="dist" />
<property name="spring.root" value="../spring" />
<property name="jdbclib.root" value="../extraLib/jdbclib" />
<!-- 用到的外部类包,即classpath -->
<path id="project.class.path">
<fileset dir="${spring.root}/dist">
<include name="spring.jar" />
</fileset>
<fileset dir="${spring.root}/lib/log4j">
<include name="log4j-1.2.14.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-commons">
<include name="commons-dbcp.jar" />
<include name="commons-logging.jar" />
<include name="commons-pool.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-taglibs">
<include name="standard.jar" />
</fileset>
<fileset dir="${spring.root}/lib/j2ee">
<include name="servlet-api.jar" />
<include name="jstl.jar" />
</fileset>
</path>
<target name="build" depends="clean,warfile">
</target>
<target name="clean" description="Clean output dirs (build, weblib, dist)">
<delete dir="${build.dir}" />
<delete dir="${weblib.dir}" />
<delete dir="${dist.dir}" />
</target>
<target name="compile" description="编译java">
<mkdir dir="${build.dir}" />
<javac destdir="${build.dir}" srcdir="${src.dir}">
<compilerarg line="-encoding UTF-8" />
<classpath refid="project.class.path" />
</javac>
<copy todir="${build.dir}">
<fileset dir="${src.dir}">
<include name="**/*.properties" />
<include name="**/*.xml" />
</fileset>
</copy>
<mkdir dir="${weblib.dir}" />
<copy todir="${weblib.dir}" preservelastmodified="true">
<fileset dir="${spring.root}/dist">
<include name="spring.jar" />
</fileset>
<fileset dir="${spring.root}/lib/log4j">
<include name="log4j-1.2.14.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-commons">
<include name="commons-dbcp.jar" />
<include name="commons-logging.jar" />
<include name="commons-pool.jar" />
</fileset>
<fileset dir="${spring.root}/lib/j2ee">
<include name="jstl.jar" />
</fileset>
<fileset dir="${spring.root}/lib/jakarta-taglibs">
<include name="standard.jar" />
</fileset>
<fileset dir="${jdbclib.root}">
<include name="mysql.jar" />
</fileset>
</copy>
</target>
<target name="warfile" depends="compile" description="创建Web应用程序War包">
<mkdir dir="${dist.dir}" />
<war warfile="${dist.dir}/${project.name}.war" basedir="${war.dir}" webxml="${war.dir}/WEB-INF/web.xml">
<include name="*" />
<include name="images/**" />
<include name="WEB-INF/*.*" />
<include name="WEB-INF/lib/**" />
<include name="WEB-INF/jsp/**" />
<include name="WEB-INF/classes/**" />
<exclude name="WEB-INF/web.xml" />
<exclude name="**/.*" />
</war>
</target>
</project>
- baobaotao.war (3.5 MB)
- 下载次数: 10
相关推荐
spring企业开发介绍.ppt
黎活明-传智播客-Spring企业开发 Cindigo整理发布,谨此向北京传智播客™致谢!
Spring 企业开发应用, 100多页,面面俱到,讲得比较细了。
1.精通Spring 4.x 企业应用开发实战精通Spring 4.x 企业应用开发实战精通Spring 4.x 企业应用开发实战精通Spring 4.x 企业应用开发实战精通Spring 4.x 企业应用开发实战精通Spring 4.x 企业应用开发实战精通Spring 4...
本书是在《精通Spring 3.x――企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻...
Spring MVC之一 第20章 Spring MVC之二 第21章 集成其他Web框架 第6篇 其他 第22章 Spring应用的测试 第23章 Spring工具类盘点 附录A 各种数据库连接配置及驱动 附录B IDE开发环境设置 ...
spring 4.0企业开发实战。写的不错,。。。。。。。。。
Spring势如破竹,占据着Java领域轻量级开发的王者地位。随着Java语言的发展以及市场开发的需求,Spring推陈出新,推出了全新的Spring Boot框架。Spring Boot是Spring家族的一个子项目,其设计初衷是为了简化Spring...
spring4.X企业开发应用实战spring4.X企业开发应用实战spring4.X企业开发应用实战
精通Spring企业应用开发实战,资源清晰完整,下载所需资源分数低,下载后请给好评
Java EE设计模式:Spring企业级开发最佳实践
spring security 开发企业级认证与授权spring security 开发企业级认证与授权spring security 开发企业级认证与授权spring security 开发企业级认证与授权
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层...Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
精通Spring 4.x 企业应用开发实战,开发技术类图书,是Spring开发领域值得阅读的一本好书。
《Spring 3.x企业应用开发实战》
精通Spring4.x+企业应用开发实战 配套光盘(源码+资源)
Spring3.x企业应用开发实战(包括源码)绝对完整版 因未见太大,分8个小块(其他部分在本人资料里面查找),只有前4个每个收1分,后面4个免费下载,共4分,绝对完整,包含所有章节,不完整浏览分享
《Spring 3.x 企业应用开发实战》一书的部分lib包