Spring框架(四)Spring.Spring DAO.Spring MVC.入门案例.扩展案例.注解SpringMVC

Spring

目录
Spring
    Spring是一个容器(IOC核心/AOP)
    Spring容器对象创建
    向Spring容器添加元素(组件)
    从Spring容器获取元素(对象)
    Spring IOC概念
Spring DAO
    1. JdbcTemplate/RowMapper
    2. JdbcDaoSupport
    3. DataSourceTransactionManager
    4. DataAccessException
Spring MVC
入门案例
    1. 流程设计
    2. 工程创建
    3. 生成web配置文件.web.xml配置DispatcherServlet
    4. applicationContext.xml配置HandlerMapping
    5. 编写Controller
    6. applicationContext.xml配置Controller(控制器)
    7. applicationContext.xml配置ViewResolver(视图解析器)
    8. 在WEB-INF下编写hello.jsp
扩展案例
    1. 添加HandlerMapping映射信息在applicationContext.xml里
    2. 新建ListController.java继承implements Controller
    3. 配置ListController(注意大小写)
    4. 编写list.jsp
注解SpringMVC
    1. 配置DispatcherServlet(前端控制器)
    2. 配置HandlerMapping
    3. 编写HelloController
    4. 配置HelloController
    5. 配置ViewResolver
    6. 编写hello.jsp

Spring是一个容器(IOC核心/AOP)。
Spring容器对象创建?

BeanFactory–>ApplicationContext–>ClassPathXmlApplicationContext ApplicationContext ac = new ClassPathXmlApplicationContext(“xxx.xml”);

向Spring容器添加元素(组件)?

1.在XML文件添加定义

2.使用注解扫描技术

<context:component-scan base-package="xxx">, @Controller\@Service\@Repository\@Component\@Autowired\@Resource @Named @Inject 

从Spring容器获取元素(对象)?

容器外:ac.getBean(“id|name名”) 容器内:@Autowired、@Resource/、

Spring IOC概念:由Spring容器管理程序组件,创建组件对象,利用注入建立对象关系。
Spring DAO

1.JdbcTemplate/RowMapper
    简化DAO组件编写和数据库访问
    使用方法:1.首先需要配置一个DataSource;2.然后配置JdbcTemplate,并入DataSource;3.编写DAO,注入JdbcTemplate

2.JdbcDaoSupport
    自定义DAO继承JdbcDaoSupport,可以方便使用JdbcTemplate.

3.DataSourceTransactionManager
    提供声明式事务管理功能。追加注解配置即可完成事务控制。

4.DataAccessException
    提供了统一的异常处理类,只要是数据库访问技术出错就抛出该异常类。

Spring MVC

基于Spring容器IOC功能实现组件管理和对象关系注入。并实现了MVC设计思想。

MVC优点:按功能将程序组件进行划分,便于系统维护、扩展工作。

入门案例

1.流程设计
    /hello.do-->
    DispatcherServlet(前端适配器)-->
    HandlerMapping(处理器映射)-->
    HelloController(控制器)-->
    ViewResolver(视图解析器)-->
    /hello.jsp

2.工程创建
    引入spring ioc、aop、mvc开发包
    在src添加applicationContext.xml文件

3.生成web配置文件.web.xml配置DispatcherServlet(前端适配器)

  <servlet>     <servlet-name>springmvc</servlet-name>     <servlet-class>     <!-- 3.找DispatcherServlet(前端适配器)的包名.类名     方式一:在jar包中找     方式二:新建一个类让工具帮我们找:输入DispatcherServlet,     导包org.springframework.web.servlet.DispatcherServlet      -->     org.springframework.web.servlet.DispatcherServlet     </servlet-class>     <!-- 5.初始化参数 -->     <init-param>     <!-- 7.参数名称是固定的contextConfigLocation -->  <param-name>contextConfigLocation</param-name>      <!-- 6.加载spring配置文件,实例化Spring容器 -->       <param-value>classpath:applicationContext.xml</param-value>     </init-param>   <!--   4.元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)正数的值越小,   该servlet的优先级越高,应用启动时就越先加载   实例化Spring容器 -->     <load-on-startup>1</load-on-startup>   </servlet>   <!-- 2.配置servlet-mapping的路径映射配置名字和servlet-name一样   和url-pattern映射拦截路径   发出.do请求找servlet-name也就是找servlet-name -->   <servlet-mapping>     <servlet-name>springmvc</servlet-name>     <url-pattern>*.do</url-pattern>   </servlet-mapping> 

4.applicationContext.xml配置HandlerMapping

    <!-- 1.定义(处理器映射)HandlerMapping把请求映射到Controler中 --> <bean id="handlerMapping"     class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">     <property name="mappings">     <!-- 2.set注入 properties集合请求和controller名的映射信息-->     <props>         <prop key="/hello.do">helloController</prop>     </props>     </property> </bean> 

5.编写Controller(控制器)

//1.输出打印 System.out.println("执行了HellController"); //2.创建ModelAndView,封装模型数据和响应视图名称 //3.request.setAttribute("msg", "Hello SpringMVC");//原来做法,现在不用了 ModelAndView mav = new ModelAndView(); //4.设置模型数据 mav.getModel().put("msg1", "Hello SpringMVC"); mav.getModel().put("msg2", "First SpringMVC"); //5.指定视图名称hello.jsp mav.setViewName("hello"); //6.返回mav return mav; 

6.applicationContext.xml配置Controller(控制器)

<!-- 第六步1.applicationContext.xml配置Controller --> <bean id="helloController" class="com.xdl.controller.HelloController"></bean> 

springmvc01_v1

7.applicationContext.xml配置ViewResolver(视图解析器)

<!-- 第七步applicationContext.xml配置ViewResolver(视图解析器1.org.springframework.web.servlet.view.InternalResourceViewResolver --> <!-- viewResolver,解析contorller返回的ModelAndView信息 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">      <!-- 2个set注入prefix前缀suffix后缀  -->     <property name="prefix" value="/WEB-INF/"></property>     <property name="suffix" value=".jsp"></property> </bean> 

8.在WEB-INF下编写hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>     <head>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <title>Insert title here</title>     </head>     <body>         <h1>${msg1}</h1>         <h1>${msg2}</h1>     </body> </html> 

扩展案例
    /list.do-->
    DispatcherServlet(前端控制器)-->
    HandlerMapping(处理器映射)-->
    ListController(列表控制器)-->
    ViewResovler(视图解析器)-->
    /WEB-INF/list.jsp

1.添加HandlerMapping映射信息在applicationContext.xml里

<!-- 第四步1.定义(处理器映射)HandlerMapping把请求映射到Controler中 --> <bean id="handlerMapping"   class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">     <property name="mappings">         <!-- 第四步2.set注入 properties集合请求和controller名的映射信息-->         <props>             <prop key="/hello.do">helloController</prop>             <!-- 扩展案例1.扩展案例list.do -->             <prop key="/list.do">listController</prop>         </props>     </property> </bean> 

2.新建ListController.java继承implements Controller

public class ListController implements Controller {     @Override     public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {         //1.构建一个对象         ModelAndView mav = new ModelAndView();         //3.get设置消息列表显示         mav.getModel().put("msg", "列表显示");         //2.寻找list.jsp         mav.setViewName("list");         //3.返回mav         return mav;     } } 

3.配置ListController(注意大小写)

<!-- 扩展案例2.applicationContext.xml配置Controller扩展案例list.do --> <bean id="listController" class="com.xdl.controller.ListController"> </bean> 

4.编写list.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head>     <body>         <h1>${msg}</h1>     </body> </html> 

注解SpringMVC
可以替代bean和handlerMaping还有controller

SpringMVC注解配置比XML配置,应用简洁,方便。简化XML配置量,简化了Controller组件编写。
    /hello.do-->
    DispatcherServlet(前端控制器)-->
    HandlerMapping-->
    HelloController-->
    ViewResolver-->
    /hello.jsp

搭建一个项目

引入jrb包和配置文件

1.配置DispatcherServlet(前端控制器)

(与XML配置相同)  <!-- 1.servlet --> <servlet>     <servlet-name>springmvc</servlet-name>     <servlet-class>     <!-- 新建一个测试类输入DispatcherServlet,导它的包 -->     org.springframework.web.servlet.DispatcherServlet     </servlet-class>     <!-- 3.追加参数 ,约定好的名字-->     <init-param>         <param-name>contextConfigLocation</param-name>         <param-value>classpath:applicationContext.xml</param-value>     </init-param>     <!-- 4.load-on-startup -->     <load-on-startup>1</load-on-startup> </servlet> <!-- 2.servlet-mapping --> <servlet-mapping>     <servlet-name>springmvg</servlet-name>     <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> 

2.配置HandlerMapping

<mvc:annotation-driven />  内部定义了大量< bean>组件,与MVC注解有关的  <!--配置HandlerMapping 在测试类中输入RequestMappingingHandlerMapping 导包 <bean class="org.springframework.web.servlet.DispatcherServlet"></bean> 补充加强组件适配器  <bean class="org.springframework.web.servlet.DispatcherAdopter"></bean>-->  <!-- 封装简配 等于上面2个 相当于总开关里面有十多个不用写--> <mvc:annotation-driven /> 

3.编写HelloController

package com.xdl.controller; import org.springframework.stereotype.Controller; import org.springframework.web.servlet.ModelAndView; /**  * 不用实现Controller接口  * 方法定义更加灵活,方法名自定义,参数根据需要定义,返回类型ModelAndView/String  * @author Administrator  *  */ @Controller public class HelloController {     //1.直接写方法     @RequestMapping("/hello.do")     public ModelAndView say(){         ModelAndView mav = new ModelAndView();         mav.getModel().put("msg1", "Hello SpringMVC");//设置模型数据         mav.getModel().put("msg2", "First SpringMVC");         mav.setViewName("hello");//指定视图名称hello         return mav;     } }  提示:不需要实现约定接口及方法。 

-4.配置HelloController

<!-- Controller 自动扫描 -->     <context:component-scan base-package="com.xdl.controller"> 

5.配置ViewResolver

<!-- ViewResolver --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 2个set注入prefix前缀suffix后缀  --> <property name="prefix" value="/WEB-INF/"></property> <property name="suffix" value=".jsp"></property> </bean> 

6.编写hello.jsp

    <h1>${msg1}</h1>     <h1>${msg2}</h1> 

作业

  1. 实现课上两个版本的hello案例(XML和注解) 2. 做一个列表显示页面。(注解版本)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Mybatis SpringMVC 实战作业是一种结合了Spring框架、Mybatis框架以及SpringMVC框架的编程任务。在实战作业中,我们需要使用这三个框架实现一个完整的Web应用。 首先,我们需要使用Spring框架实现项目的基本配置和依赖注入功能。Spring框架可以帮助我们管理各个组件的生命周期和依赖关系,并提供了许多实用的特性,如AOP、事务管理等。 其次,我们需要使用Mybatis框架来简化数据库操作。Mybatis是一个持久层框架,可以通过配置文件或注解的方式,将Java对象映射到数据库中的表,并提供了丰富的查询语法和缓存机制。 最后,我们需要使用SpringMVC框架来处理Web请求和响应。SpringMVC是一个基于MVC设计模式的Web框架,可以帮助我们实现灵活的请求处理和页面跳转,还提供了对RESTful风格的支持。 在实战作业中,我们可以按照以下步骤进行操作: 1. 配置Spring框架,包括定义数据源、事务管理等。 2. 配置Mybatis框架,包括定义数据库连接信息、映射文件或注解等。 3. 创建数据库表和实体类,定义它们之间的映射关系。 4. 编写DAO接口和对应的Mapper文件或注解,实现数据库的增删改查操作。 5. 配置SpringMVC框架,包括定义Controller类、请求映射和视图解析器等。 6. 编写Controller类,处理具体的页面请求和业务逻辑。 7. 编写页面模板,实现页面的展示和用户交互效果。 通过完成该实战作业,我们可以深入理解Spring框架、Mybatis框架SpringMVC框架的使用方法,并掌握它们在Web应用开发中的应用场景和优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值