首页 > 嗟来之食 > spring mvc官网下最新jar搭建框架-静态资源访问处理-注解-自动扫描 – 周建旭的博客 –
2016
08-10

spring mvc官网下最新jar搭建框架-静态资源访问处理-注解-自动扫描 – 周建旭的博客 –

1.从官网下载spring相关jar http://spring.io/projects 点击SPRING FRAMEWORK

2.从GitHtb下载

3.向下滚动找到Downloading Artifacts 点击

4.点击Artifacts–》libs-release-local–》org–》springframewor–》spring

5.选中一个自己需要的版本(我选了4.2.5)

6.下载后的文件

配置文件的规范约束下面文件夹有的都可以写(我用到了beans, context, mvc三个, 如果需要配置数据源的可以加jdbc)

7.创建项目并配置环境

下面是贴代码:
applicationContext.xml (默认在WEB-INFO/applicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
<!– 目前只是使用spring的web-mvc功能 数据源切面整合持久化框架可在此配置 –>
</beans>

spring-webmvc-dispatcher-servlet.xml (默认为DispacherServlet-servlet.xml)

<?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"     ##静态资源处理
xsi:schemaLocation="
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

<!– 自动扫描的包名 –>
<context:component-scan base-package="cn.zjx.controller"/>
<bean id="annotationUrlHandlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>

<!– 视图解释类 –>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>

<!– 默认的注解映射的支持
加<mvc:resources…前,要加上<mvc:annotation-driver/>,否则servlet控件器会解析失败
–>
<mvc:annotation-driven />

<!– 对静态资源文件的访问 方案一 (二选一) –>
<!– <mvc:default-servlet-handler/> –>

<!– 对静态资源文件的访问 方案二 (二选一)cache-period 缓存周期–>
<mvc:resources mapping="/resource/js/**" location="/resource/js/" cache-period="31556926"/>
<mvc:resources mapping="/resource/css/**" location="/resource/css/" cache-period="31556926"/>
<mvc:resources mapping="/resource/images/**" location="/resource/images/" cache-period="31556926"/>
</beans>
对静态资源文件的访问的其它方式: 交由上级web容器处理,在web.xml中的org.springframework.web.servlet.DispatcherServlet 配置之前加入如下代码:

  <servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
  </servlet-mapping>

如果不使用mvc:resource标签方式配置配置就需要这么配置, 下面是配置多个静态资源交由tomcat容器也是处理静态资源访问的第三种方式:
  <servlet> <servlet-name>Dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Dispatcher</servlet-name> <url-pattern>/index</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping>

根据不同的资源文件制定不同的映射机制,其中servlet-name在tomcat中默认是default,该servlet在tomcat\config\web.xml文件中默认配置,不同的应用服务器对应的静态资源文件处理的servlet名称不尽相同,如下:

  tomcat,jboss,glassfish,jetty : defaut;
  weblogic :           FileServlet;
  websphere :           SimpleFileServlet;
  resin   :           resin-file;
  GAE    :           _ah_default

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>zjx-springmvc</display-name>
<!– 如果WEB-INFO下没有application.xml或者不叫这个名需要通过contex-param来加载 –>
<!– <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/configs.xml ##多个用逗号隔开
</param-value>
</context-param> –>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!–
如果WEB-INF 包含文件名称为 DispatcherServlet-servlet.xml(默认找DispatcherServlet-servlet.xml这个文件)
则不需要在inint配置命名空间来加载该***-servlet.xml 文件
–>
<init-param>
<param-name>namespace</param-name>
<param-value>spring-webmvc-dispatcher-servlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<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>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

TestController.java

package cn.zjx.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {
@RequestMapping(value="/insert")
public String save(){
System.out.println("insert success");
return "user_manager";
}
@RequestMapping(value="/selectList")
public String selectList(HttpServletRequest requset){ request.setAttribute("size", "5个用户");
return "user_manager";
}
}

8.启动tomcat 可以看到加载顺序与加载的文件以及实例化的testController对象及方法的url映射名称和静态资源映射;
如下:加粗字体
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]五月 08, 2016 3:47:21 上午 org.springframework.web.context.ContextLoader initWebApplicationContextINFO: Root WebApplicationContext: initialization completed in 1932 ms五月 08, 2016 3:47:22 上午 org.apache.catalina.core.ApplicationContext logINFO: Initializing Spring FrameworkServlet 'DispatcherServlet'五月 08, 2016 3:47:22 上午 org.springframework.web.servlet.FrameworkServlet initServletBeanINFO: FrameworkServlet 'DispatcherServlet': initialization started五月 08, 2016 3:47:22 上午 org.springframework.context.support.AbstractApplicationContext prepareRefreshINFO: Refreshing WebApplicationContext for namespace 'spring-webmvc-dispatcher-servlet': startup date [Sun May 08 03:47:22 CST 2016]; parent: Root WebApplicationContext五月 08, 2016 3:47:22 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitionsINFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-webmvc-dispatcher-servlet.xml]五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/insert] onto handler 'testController'五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/insert.*] onto handler 'testController'五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/insert/] onto handler 'testController'五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/selectList] onto handler 'testController'五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/selectList.*] onto handler 'testController'五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/selectList/] onto handler 'testController'五月 08, 2016 3:47:26 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry registerINFO: Mapped "{[/insert]}" onto public java.lang.String cn.zjx.controller.TestController.save()五月 08, 2016 3:47:26 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry registerINFO: Mapped "{[/selectList]}" onto public java.lang.String cn.zjx.controller.TestController.selectList(javax.servlet.http.HttpServletRequest)五月 08, 2016 3:47:26 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCacheINFO: Looking for @ControllerAdvice: WebApplicationContext for namespace 'spring-webmvc-dispatcher-servlet': startup date [Sun May 08 03:47:22 CST 2016]; parent: Root WebApplicationContext五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCacheINFO: Looking for @ControllerAdvice: WebApplicationContext for namespace 'spring-webmvc-dispatcher-servlet': startup date [Sun May 08 03:47:22 CST 2016]; parent: Root WebApplicationContext五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/resource/js/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/resource/css/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#1'五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandlerINFO: Mapped URL path [/resource/images/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#2'五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.FrameworkServlet initServletBeanINFO: FrameworkServlet 'DispatcherServlet': initialization completed in 5507 ms五月 08, 2016 3:47:27 上午 org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler ["http-bio-6661"]五月 08, 2016 3:47:27 上午 org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler ["ajp-bio-6666"]五月 08, 2016 3:47:27 上午 org.apache.catalina.startup.Catalina startINFO: Server startup in 16614 ms
静态资源可以访问

虽然web.xml中url-pattern为/
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>namespace</param-name>
<param-value>spring-webmvc-dispatcher-servlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>但是有它:<mvc:resources mapping="/resource/images/**" location="/resource/images/" cache-period="31556926"/>测试insert方法http://localhost:6661/zjx-springmvc/insert测试selectList查询方法http://localhost:6661/zjx-springmvc/selectList————————————————————————————————–先到这里
接下来是配置velocity和log4j日志配置Dobble
然后通过maven命令来生成分布式项目结构如下结构把架构移植到下面就是spring-mvc为控制器的分布式架构了\(^o^)/~

————–等待更新——————–

最后编辑:
作者:
这个作者貌似有点懒,什么都没有留下。

留下一个回复