脑补一下springMVC的使用,使用注解和常规配置两种方式实现。
1.配置文件:
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:property-placeholder location="classpath:datasource/*.properties" />
<mvc:annotation-driven />
<!-- 此配置的作用是用来扫描所有需要注解的类,只有被扫描的类才能使用注解 -->
<context:component-scan base-package="com.mvc"/>
<context:component-scan base-package="com.service"/>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<bean name="/test.do" class="com.mvc.MVCTest"/>//非注解形式配置controller
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--引入JDBC -->
<!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean> -->
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="driverUrl">
<value>jdbc:mysql://localhost:3306/test</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
<bean id = "jdbcTemplate"
class = "org.springframework.jdbc.core.JdbcTemplate">
<property name = "dataSource" ref="dataSource"/>
</bean>
<!--事务模板 -->
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
</bean>
<!-- jdbc事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
</beans>
2. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>water</display-name>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext*.xml</param-value>
</init-param>
<!-- 标识启动容器时初始化该Servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingfilter</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>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
</web-app>
3.MVCTest.java
public class MVCTest implements org.springframework.web.servlet.mvc.Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
ModelAndView modelAndView = new ModelAndView();
System.out.println("mvc test!");
modelAndView.setViewName("index");
return modelAndView;
}
}
启动tomcat后输入localhost:8080/spring/test.do
4.注解方式实现
@Controller
@RequestMapping(value="/mvc")
public class MutilController {
@Autowired
@Qualifier("mvcService")
private MVCService mvcService;
@RequestMapping(value="/mutil.do", method=RequestMethod.GET)
public ModelAndView test(){
ModelAndView modelAndView = new ModelAndView();
System.out.println("mvc test!");
mvcService.print();
modelAndView.setViewName("index");
return modelAndView;
}
@RequestMapping(value="/second.do",method=RequestMethod.GET)
public ModelAndView secode(){
ModelAndView modelAndView = new ModelAndView("redirect:/mvc/mutil.do");
return modelAndView;
}
}
5.附带使用一下spring jdbctemplate
@Repository
public class UserDao {
@Autowired
@Qualifier("jdbcTemplate")
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void print(){
Map<String, String> m = new HashMap<String, String>();
m.put("name", "test");
m.put("pwd", "test");
String insertSql = "insert into t_user(name,pwd)values(?,password(?))";
jdbcTemplate.update(insertSql, new Object[]{"test","test"});
jdbcTemplate.update(insertSql,new PreparedStatementSetter(){
@Override
public void setValues(PreparedStatement ps) throws SQLException {
ps.setString(1, "ff");
ps.setString(2, "test");
}});
String sql = "select * from t_user";
List<Map<String, Object>> ls = jdbcTemplate.queryForList(sql);
for(Map<String, Object>l:ls){
Set<String> set = l.keySet();
for(String s:set){
System.out.println(s);
System.out.println(l.get(s));
}
}
System.out.println("测试dao启动");
}
}
@Service("mvcService")
public class MVCService {
@Autowired
private UserDao userDao;
public void print() {
userDao.print();
System.out.println("测试service注解!");
}
}
本人文笔不好,欢迎排板砖。