案例:springmvc+spring+jdbc
1. 导入jar文件
a) springmvc
org.springframework.web-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
b) spring
aopalliance.jar
aspectjrt.jar
aspectjweaver.jar
cglib-nodep-2.1_3.jar
commons-dbcp.jar ##spring关于数据库连接池的管理
commons-logging.jar
commons-pool.jar
log4j-1.2.16.jar ##日志管理
org.springframework.aop-3.0.5.RELEASE.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.orm-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
c) mysql的驱动包
mysql-connector-java-5.1.10-bin.jar
2. 配置项目环境
a) springmvc的配置
1). web.xml文件中核心分发器
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 在类路径下 -->
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
```
2)web.xml文件中编码过滤器
<!-- 对Post方式提交的数据进行编码处理 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</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>
3)springmvc.xml文件关于springmvc的注解配置和视图解析器
<!-- 启动注解驱动 -->
<mvc:annotation-driven/>
<!-- 包的扫描 -->
<context:component-scan base-package="com.beifeng.controller"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"></property>
</bean>
b)spring配置
1)创建config/spring/beans.xml文件,关于spring的配置信息
<!-- 基于注解的实现 -->
<context:annotation-config />
<!--寻找注解类的位置:当前包及子包中寻找-->
<context:component-scan base-package="com.beifeng"/>
<!-- 根据jdbc.properties属性信息建立数据库的连接对象 -->
<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/news?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="123" />
</bean>
注意一个问题:项目启动时需要告知beans.xml文件的位置,在web.xml文件中配置一个监听器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/beans.xml</param-value>
</context-param>
3.创建控制器
a)前端控制器
@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/index.action")
public String index(){
return "index";
}
}
4.创建数据访问层
//由spring框架创建该类的对象并且名称为userDao
@Component(value="userDao")
public class UserDAOImpl implements UserDAO {
//将spring容器中创建dataSource注入给当前对象的dataSource属性
@Resource(name="dataSource")
private DataSource dataSource;