web项目 配置说明 spring-config.xml springmvc-servlet.xml web.xml


    <!--
        spring-config.xml 配置文件书写

            1.  注解识别,驱动启动
                    <context:annotation-config/>
            2.  项目扫包,识别除@Controller注解以外的注解,并使用@Componment的postProcesser。
                    <context:component-scan base-package="com.lhb.spring">
                         <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
                    </context:component-scan>
            3.  PropertyPlaceholderConfigurer:  配置文件读取,并创建到bean中. eg.${property}; dataSource 应用。
                PropertyOverrideConfigure:      当然还可以使用占位符后处理器。 形如,#beanId.property=value 。
                     <context:property-placeholder trim-values="true" ignore-resource-not-found="true" ignore-unresolvable="true" location="classpath*:*.properties"/>
                     <context:property-override  location="classpath*:override.properties"/>
            4.  aop切面编程注解识别并处理,@Aspecct。 当然也可以使用相信的aop配置。<aop:config>标签以及其子标签等...
                     <aop:aspectj-autoproxy/>
                公司部分
            5.  wconfig  ,根据项目中所有注解为@wconfig或@wconfigValue的内容并对方法参数和实例变量进行注入值。
                    <wconfig:annotation-driven/>
            6.  其他...未完待续

            7.  配置文件解耦,可以吧dao,actor,task,redis等每一类的配置文件分开。并使用 import 引入配置文件到spring-config核心中。
                毕竟在 web.xml 中配置,spring-config 为 spring容器上下文。



    -->




    <!-- 启动@aspectj的自动代理支持-->
    <aop:aspectj-autoproxy/>

    <context:annotation-config/>

    <context:property-placeholder trim-values="true" ignore-resource-not-found="true" ignore-unresolvable="true" location="classpath*:*.properties"/>
    <context:property-override  location="classpath*:override.properties"/>

    <context:component-scan base-package="com.lhb.spring">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>


    <!--使用classpath 则选默认用classpathresource作为读取资源文件  ,以前缀为主-->
    <!--当然也可以使用file , 或http未前缀-->
    <import resource="classpath*:spring/spring-dao.xml"/>


    <!--<import resource="classpath*:*spring/spring-actor.xml"-->
    <!--<import resource="classpath*:spring/spring-redis.xml"/>-->
    <!--<import resource="classpath*:spring/spring-task.xml"/>-->


    <!--spring 4.0了,不需要配置-->
    <!--<import resource="classpath*:spring/spring-aop.xml"/>-->

<?xml version="1.0" encoding="UTF-8"?>
<web-app
        version="3.0"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">


    <!--
            web.xml 配置
        整个项目第一个加载并处理的配置文件,包含spring——config.xml , spring-serlvet.xml 接口创建和实现
        还有就是整个容器的功能  listener,filter等。

    注:
        listener功能很强大,可以设计容器,请求,会话三部分本身及其属性的更改都能被各种 listener 监听器监听到,并触发相应函数。
        filter 则可以过滤请求,整个 web 项目级别的过滤。

    -->


    <display-name>hongbin_liu.demo.spring</display-name>

    <!-- 配置容器上下文  spring-config.xml 容器上下文 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-config.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--web项目中上下文初始化参数, name value的形式 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--可以不指定 springmvc 的init-param 参数,默认参数为  <servlet-name> + "-servlet"-->
        <load-on-startup>1</load-on-startup>  <!--装载优先级-->
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>requestLog</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <async-supported>true</async-supported>
    </filter>
    <filter-mapping>
        <filter-name>requestLog</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>




</web-app>
<?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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!--
        servlet 配置
        1.  首先明确serlvet是干什么的,servlet 是 部署在tomcat容器上的对接容器,主要用于管理 项目的接口;
          其中包括,接口数据input/output。 以及容器的各部分特征;
          另外一点就是  在 springMVC 项目中,servlet 其实是 spring 容器的包裹容器,不关心spring容器内部处理机制,
          但是关心 spring 容器的进出。

        2.  扫包,只要是容器就有处理@annotation的能力。因为 它是管理所有代码的容器,扫包的原理无非就是 扫描项目文件的.class, .xml, .propertier等文件。
            并启动一个容器实例,也是一个运行的程序。
        3.  既然负责spring容器外围的进出,web容器的核心。当然需要配置上体现出 @responbody的存在。
    -->




    <!-- 载入webConfig 该文件定义HandlerMethodReturnValueHandler,以及ExceptionResolver -->
    <context:component-scan base-package="com.lhb.spring">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <bean id="objectMapper" class="com.wormpex.api.json.JsonUtil" factory-method="instance"/>

    <bean id="mappingJackson2HttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="objectMapper" ref="objectMapper"/>
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>

</beans>

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值