admin管理员组文章数量:1794759
【Spring学习笔记七】
一、Spring MVC基本配置 对于spring mvc的配置,如果是maven项目,只需要简单地加入spring mvc和Servlet的依赖就可以了。下面所说的配置,指的是没有使用maven的项目配置。
首先,新建一个web项目。在new->project->web->Dynamic Web Project,输入工程名即可。新建后的web项目结构如下:
之后,先导入spring Java包。spring下载地址为repo.springsource/libs-release-local/org/springframework/spring/。除此之外,还需导入commons-logging.jar文件,下载地址为download.csdn/download/readgo_xxg/5339124。必须要导入commons-logging.jar,不然会报错。导入Java包方式:直接将所有的Java包复制到WEB-INF下的lib文件夹下。 然后,配置web.xml文件。这个文件在创建项目时,就已经存在于WEB-INF文件夹下面了。基本配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="xmlns.jcp/xml/ns/javaee" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="xmlns.jcp/xml/ns/javaee xmlns.jcp/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>SpringMVCTest</display-name> <servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index</welcome-file> </welcome-file-list> </web-app> 比较重要的一些配置:<servlet-name>springMvc</servlet-name>是定义服务名称,spring会自动去找名为springMvc-servlet.xml的配置文件,如果不存在,就会报错。<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>是引用DispatcherServlet控制器,关于DispatcherServlet的作用和工作原理可以参考这篇博客blog.csdn/kevin_zhai/article/details/52279160。 <url-pattern>/</url-pattern>是让后台控制器匹配URL请求。 最后,配置springMvc-servlet.xml文件。在WEB-INF下新建该文件,配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework/schema/beans" xmlns:context="www.springframework/schema/context" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="www.springframework/schema/beans www.springframework/schema/beans/spring-beans-3.0.xsd www.springframework/schema/context www.springframework/schema/context/spring-context-3.1.xsd"> <context:annotation-config/> <context:component-scan base-package="com.test"> </context:component-scan> </beans> 这里面是最基本的配置,只定义了spring自动扫描的package路径。当spring容器启动时,会自动扫描com.test下带有@Component标注的类,并加载到spring容器中。关于spring自动装配Bean的内容可以参考这篇博客blog.csdn/kevin_zhai/article/details/52238575。 二、spring mvc实例代码 上面介绍了spring mvc的基本配置,下面就可以利用上面配置好的项目开始写实例了。 spring MVC后台代码一般包括三层,即Controller层,service层和dao层。Controller即控制器;service是业务层,具体逻辑业务的实现;dao层是底层与数据库直接交互的部分。在【Spring学习笔记四】-自动装配Bean blog.csdn/kevin_zhai/article/details/52238575这篇博客里,已经介绍了用@Component和@Autowired进行自动装配Bean,在spring MVC中,有三个与@Component作用相似的三个标注,分别是:@Controller,@Service和@Repository。它们的作用都是将类自动注入到spring容器中,不同之处在于:@Controller用于标注控制器,@Service用于标注业务层组件,@Repository用于标注数据访问组件。 1. controller代码 @Controller public class GetMessageController { @Autowired private GetMessageService getMessageService; @RequestMapping(value={"/getMessage"},method = {RequestMethod.GET}) public ModelAndView getMessage() { ModelAndView mav = new ModelAndView("WEB-INF/HelloWorld.jsp"); mav.addObject("message",getMessageService.getMessage()); return mav; } } 其中,@controller标注是把GetMessageController类自动加载到spring容器中,@Autowired标注是自动装配GetMessageService类型变量。@RequestMapping标注是用来处理请求地址映射的,它可以用到类或方法上。在这里,当我们在浏览器上访问localhost:端口号/项目/getMessage时,就可以访问到这个Controller了。mav是ModelAndView类型变量,会返回一个jsp页面,并把message变量值传递给前端页面。 2.Service代码 public interface GetMessageService { public String getMessage(); } @Service public class GetMessageServiceImpl implements GetMessageService{ @Autowired private GetMessageDao getMessageDao; @Override public String getMessage() { return getMessageDao.getMessage(); } }其中,GetMessage是一个接口,GetMessageServiceImpl是对接口的实现。@Service是把GetMessageServiceImpl类自动加载到Spring容器中,上面的Controller中就可以自动注入GetMessageServiceImpl类到getMessageService变量中。 3.dao层代码 public interface GetMessageDao { public String getMessage(); } @Repository public class GetMessageDaoImpl implements GetMessageDao{ @Override public String getMessage() { return "Hello World"; } } 其中,GetMessageDao是dao层接口,GetMessageDaoImpl是对接口的实现。 4.jsp代码 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "www.w3/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h1>Message : ${message}</h1> </body> </html> 前后端代码都写完之后,Spring项目结构如下: 三、spring mvc启动服务 新建tomcat服务器,把项目加载到本地服务器上,然后启动本地服务器。打开浏览器,在浏览器上输入以下网址:localhost:8058/SpringMVCTest/getMessage,其中,8058是tomcat端口号,SpringMVCTest是项目名称,getMessage是Controller中@RequestMapping的地址。出现如下所示页面,证明我们整个spring mvc项目启动成功了。四、问题总结 下面说一下自己在配置项目过程中遇到的问题,供大家参考。 1. 一定要导入spring Java包时,导入commons-logging.jar。 2. Java包要复制到WEB-INF下的lib文件夹下,开始我是在根目录下新建的lib文件夹,将Java包复制过去的,结果出现DispatcherServlet类找不到的异常。 3. 配置servlert.xml时,一定要把扫描的包写对,不然spring无法自动装配Bean,网页访问时访问不到Controller,就会出现404错误。
版权声明:本文标题:【Spring学习笔记七】 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686616606a86639.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论