maven + spring + spring mvc + mybatis + cxf Demo

来源:互联网 发布:淘宝依视路镜片真假 编辑:程序博客网 时间:2024/05/21 18:35

maven + spring + spring mvc + mybatis + cxf Demo

在搞定工作上的事情以后尝试搭建了一个模块化的项目,暂时性的集成了上述的一些框架:

配置文件献上:

在resource模块建立spring 的配置文件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" xmlns:p="http://www.springframework.org/schema/p"      xmlns:context="http://www.springframework.org/schema/context"    xmlns:tx="http://www.springframework.org/schema/tx"     xmlns:mvc="http://www.springframework.org/schema/mvc"      xmlns:aop="http://www.springframework.org/schema/aop"    xsi:schemaLocation="http://www.springframework.org/schema/beans                            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                            http://www.springframework.org/schema/context                            http://www.springframework.org/schema/context/spring-context-3.1.xsd                        http://www.springframework.org/schema/aop                        http://www.springframework.org/schema/aop/spring-aop.xsd                        http://www.springframework.org/schema/tx                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd                         http://www.springframework.org/schema/mvc                            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">    <!-- 扫描指定类下的所有类,这样在类定义的spring注解才能有作用-->      <context:component-scan base-package="com.demo.simpledemo"/>    <mvc:annotation-driven/>    <!-- 配置事务管理器-->    <bean id="transactionManager"        class="org.springframework.jdbc.datasource.DataSourceTransactionManager"        p:dataSource-ref="dataSource" />    <!-- 同过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 -->    <aop:config proxy-target-class="true" >        <aop:pointcut id="txPointcut"            expression="execution(* com.demo.simpledemo..service..*.*(..))" />        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />    </aop:config>    <tx:advice id="txAdvice" transaction-manager="transactionManager">        <tx:attributes>            <!-- select、query、find、get开头的service方法,默认为只读, 其他所有方法默认为开启事务,并且在抛出运行时异常(RuntimeException)时会回滚,否则不回滚 -->            <tx:method name="select*" read-only="true" propagation="SUPPORTS" />            <tx:method name="query*" read-only="true" propagation="SUPPORTS" />            <tx:method name="find*" read-only="true" propagation="SUPPORTS" />            <tx:method name="get*" read-only="true" propagation="SUPPORTS" />            <tx:method name="*" propagation="REQUIRED" />        </tx:attributes>    </tx:advice>    <beans>        <!-- MyBatis 的配置文件 -->        <import resource="spring-mybatis.xml"/>        <!-- CXF 的服务配置 -->        <import resource="spring-cxf-server.xml"/>    </beans></beans> 

继承CXF 的配置文件 spring-cxf-server.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:jaxrs="http://cxf.apache.org/jaxrs"      xmlns:context="http://www.springframework.org/schema/context"      xsi:schemaLocation="          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd          http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">      <description>Rails CM 的所有RESTFUL 服务配置</description>    <!-- JSON 转换-->    <bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider">      </bean>     <jaxrs:server id="coastService" address="/cxfService">        <jaxrs:serviceBeans>              <ref bean="webServiceByCxf" />          </jaxrs:serviceBeans>         <jaxrs:providers>              <ref bean="jsonProvider" />          </jaxrs:providers>        <jaxrs:extensionMappings>              <entry key="json" value="application/json" />            <entry key="xml" value="application/xml" />          </jaxrs:extensionMappings>         <jaxrs:languageMappings>              <entry key="en" value="en-gb"/>            </jaxrs:languageMappings>    </jaxrs:server>  </beans> 

在提供一份Spring MVC 的配置文件:

<?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:p="http://www.springframework.org/schema/p"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="http://www.springframework.org/schema/beans                          http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                          http://www.springframework.org/schema/context                          http://www.springframework.org/schema/context/spring-context-3.1.xsd                          http://www.springframework.org/schema/mvc                          http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">    <context:annotation-config/>    <!-- converter to json -->    <mvc:annotation-driven>        <mvc:message-converters>            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>        </mvc:message-converters>    </mvc:annotation-driven>        <!--包的扫描 -->    <context:component-scan base-package="com.demo.simpledemo">        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>    </context:component-scan>    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>     <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->    <bean        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="viewClass"            value="org.springframework.web.servlet.view.JstlView" />        <property name="prefix" value="/"></property>        <property name="suffix" value=".jsp"></property>    </bean>    <mvc:default-servlet-handler/>    <!-- 配置静态资源不需要spring进行拦截 -->    <mvc:resources location="/images/" mapping="/images/**"></mvc:resources>    <mvc:resources location="/scripts/" mapping="/scripts/**"></mvc:resources>    <mvc:resources location="/css/" mapping="/css/**"></mvc:resources>    <bean id="propertyConfigurerInServlet" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <property name="locations">            <list>                <value>classpath*:jdbc.properties</value>                <value>classpath*:config.properties</value>                <value>classpath*:formConfig.properties</value>            </list>        </property>        <property name="ignoreResourceNotFound" value="false" />    </bean></beans>

Spring 和 MyBatis 的集成 spring-mybatis.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:cache="http://www.springframework.org/schema/cache"    xsi:schemaLocation="http://www.springframework.org/schema/beans                            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                            http://www.springframework.org/schema/context                            http://www.springframework.org/schema/context/spring-context-3.1.xsd                            http://www.springframework.org/schema/cache                         http://www.springframework.org/schema/cache/spring-cache-3.2.xsd">    <!-- 引入配置文件 -->    <bean id="propertyConfigurer"        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <property name="location" value="classpath:config/jdbc.properties" />    </bean>    <!-- 数据源的配置 -->    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"          destroy-method="close">          <property name="driverClassName" value="${jdbc.driverClassName}" />          <property name="url" value="${jdbc.url}" />          <property name="username" value="${jdbc.username}" />          <property name="password" value="${jdbc.password}" />          <!-- 初始化连接大小           <property name="initialSize" value="${ms_initialSize}"></property>  -->        <!-- 连接池最大数量 -->          <property name="maxActive" value="${jdbc.maxActive}"></property>          <!-- 连接池最大空闲 -->          <property name="maxIdle" value="${jdbc.maxIdle}"></property>          <!-- 连接池最小空闲         <property name="minIdle" value="${ms_minIdle}"></property>  -->          <!-- 获取连接最大等待时间 -->          <property name="maxWait" value="${jdbc.maxWait}"></property>      </bean>     <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <!-- 自动扫描mapping.xml文件 -->        <property name="mapperLocations" value="classpath:com/demo/simpledemo/dao/*.xml"></property>    </bean>   <!-- DAO接口所在包名,Spring会自动查找其下的类 -->      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">          <property name="basePackage" value="com/demo/simpledemo/dao" />          <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>      </bean></beans>    

JDBC配置文件 jdbc.properties

jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc.url=jdbc:sqlserver://库:1433;DatabaseName=库名;integratedSecurity=falsejdbc.username=**jdbc.password=**jdbc.maxActive=100jdbc.maxIdle=30jdbc.maxWait=500jdbc.pool.init=1jdbc.pool.minIdle=3jdbc.pool.maxActive=20

忘了哪里copy 来的日志的配置文件

 log4j.rootLogger=DEBUG,CONSOLE,A1,im  log4j.addivity.org.apache=true log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  log4j.appender.Threshold=DEBUG  log4j.appender.CONSOLE.Target=System.out  log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n  #?????  log4j.appender.FILE=org.apache.log4j.FileAppender  log4j.appender.FILE.File=file.log  log4j.appender.FILE.Append=false  log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  # Use this layout for LogFactor 5 analysis  # ???????  log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender  log4j.appender.ROLLING_FILE.Threshold=ERROR  log4j.appender.ROLLING_FILE.File=rolling.log log4j.appender.ROLLING_FILE.Append=true  log4j.appender.ROLLING_FILE.MaxFileSize=10KB log4j.appender.ROLLING_FILE.MaxBackupIndex=1 log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout  log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  #???socket  log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender  log4j.appender.SOCKET.RemoteHost=localhost  log4j.appender.SOCKET.Port=5001  log4j.appender.SOCKET.LocationInfo=true  # Set up for Log Facter 5  log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout  log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n  # Log Factor 5 Appender  log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender  log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender  log4j.appender.MAIL.Threshold=FATAL  log4j.appender.MAIL.BufferSize=10  [email=log4j.appender.MAIL.From=web@www.wuset.com]log4j.appender.MAIL.From=web@www.wuset.com[/email] log4j.appender.MAIL.SMTPHost=www.wusetu.com  log4j.appender.MAIL.Subject=Log4J Message  [email=log4j.appender.MAIL.To=web@www.wusetu.com]log4j.appender.MAIL.To=web@www.wusetu.com[/email] log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout  log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender  log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test  log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver  log4j.appender.DATABASE.user=root  log4j.appender.DATABASE.password=  log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')  log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout  log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender  log4j.appender.A1.File=SampleMessages.log4j  log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'  log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout  #???Appender  log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender  log4j.appender.im.host = mail.cybercorlin.net  log4j.appender.im.username = username  log4j.appender.im.password = password  log4j.appender.im.recipient = [email=corlin@cybercorlin.net]corlin@cybercorlin.net[/email]  log4j.appender.im.layout=org.apache.log4j.PatternLayout  log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

web 配置文件 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"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd"    id="WebApp_ID" version="2.3">  <display-name>Archetype Created Web Application</display-name>  <!-- Spring和mybatis的配置文件    -->    <context-param>          <param-name>contextConfigLocation</param-name>          <param-value>classpath:applicationContext.xml</param-value>      </context-param>     <!-- 编码过滤器 -->      <filter>          <filter-name>encodingFilter</filter-name>          <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>          <async-supported>true</async-supported>          <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>      <!-- Spring监听器 -->      <listener>          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>      </listener>      <!-- 防止Spring内存溢出监听器 -->      <listener>          <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>      </listener>      <!-- Spring MVC Servlet -->      <servlet>          <servlet-name>SpringMVC</servlet-name>          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>          <init-param>              <param-name>contextConfigLocation</param-name>              <param-value>classpath*:spring-mvc.xml</param-value>          </init-param>          <load-on-startup>1</load-on-startup>          <async-supported>true</async-supported>      </servlet>      <servlet-mapping>          <servlet-name>SpringMVC</servlet-name>          <url-pattern>/</url-pattern>      </servlet-mapping>    <!--配置CXFServlet-->      <servlet>        <display-name>CXFServlet</display-name>        <servlet-name>CXFServlet</servlet-name>        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>CXFServlet</servlet-name>        <url-pattern>/services/*</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>default</servlet-name>        <url-pattern>/commonJs/*</url-pattern>        <url-pattern>/css/*</url-pattern>        <url-pattern>/images/*</url-pattern>        <url-pattern>/fonts/*</url-pattern>    </servlet-mapping>    <!-- 这个东西可以移除 感觉没用 -->    <filter>        <filter-name>DruidWebStatFilter</filter-name>        <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>        <init-param>            <param-name>exclusions</param-name>            <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*</param-value>        </init-param>        <init-param>            <param-name>sessionStatMaxCount</param-name>            <param-value>2000</param-value>        </init-param>        <init-param>            <param-name>sessionStatEnable</param-name>            <param-value>true</param-value>        </init-param>        <init-param>            <param-name>principalSessionName</param-name>            <param-value>session_user_key</param-value>        </init-param>        <init-param>            <param-name>profileEnable</param-name>            <param-value>true</param-value>        </init-param>    </filter>    <welcome-file-list>          <welcome-file>/index.jsp</welcome-file>      </welcome-file-list>  </web-app>

父工程的pom 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.demo.simpledemo</groupId>    <artifactId>SimpleDemo</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>pom</packaging>    <name>SimpleDemo</name>    <url>http://maven.apache.org</url>    <modules>        <module>simpledemo.api</module>        <module>simpledemo.impl</module>        <module>simpledemo.web</module>        <module>simpledemo.controller</module>    </modules>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <jdk.version>1.7</jdk.version>        <spring.version>4.2.0.RELEASE</spring.version>        <mybatis.version>3.3.1</mybatis.version>        <log4j.version>1.2.17</log4j.version>        <cxf.version>3.1.7</cxf.version>        <jdbc.version>5.0</jdbc.version>        <servlet.api.version>2.5</servlet.api.version>        <jackson.version>1.9.13</jackson.version>        <spring.quartz.version>1.8.5</spring.quartz.version>        <jackson.core.version>2.4.3</jackson.core.version>        <aspectj.version>1.8.6</aspectj.version>        <spring.mvc.version>4.2.0.RELEASE</spring.mvc.version>        <druid.version>1.0.11</druid.version>        <jackson.version>1.9.13</jackson.version>        <jackson.core.version>2.4.3</jackson.core.version>        <servlet.api.version>2.5</servlet.api.version>        <jstl.version>1.2</jstl.version>    </properties>    <dependencies>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>3.8.1</version>            <scope>test</scope>        </dependency>        <!-- spring start.. -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>${spring.version}</version>            <exclusions>                <exclusion>                    <artifactId>commons-logging</artifactId>                    <groupId>commons-logging</groupId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context-support</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-beans</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-tx</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aop</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-jdbc</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aspects</artifactId>            <version>${spring.version}</version>        </dependency>        <!-- spring end.. -->        <!-- spring mvc start.. -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>${spring.mvc.version}</version>        </dependency>        <!-- spring mvc end.. -->        <!-- mybatis/spring包 -->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis-spring</artifactId>            <version>1.3.1</version>        </dependency>        <!-- jdbc start.. -->        <dependency>            <groupId>com.microsoft.sqlserver</groupId>            <artifactId>sqljdbc4</artifactId>            <version>${jdbc.version}</version>        </dependency>        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>${mybatis.version}</version>        </dependency>        <!-- junit test jar -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.10</version>        </dependency>        <!-- 格式化化对象,方便输出日志 -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>1.1.41</version>        </dependency>        <!-- 导入dbcp的jar包,在applicationContext.xml中库 -->        <dependency>            <groupId>commons-dbcp</groupId>            <artifactId>commons-dbcp</artifactId>            <version>1.2.2</version>        </dependency>        <!-- cxf core -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-rs-service-description</artifactId>            <version>${cxf.version}</version>        </dependency>        <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-bindings-soap -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-bindings-soap</artifactId>            <version>${cxf.version}</version>        </dependency>        <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-bindings-xml -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-bindings-xml</artifactId>            <version>${cxf.version}</version>        </dependency>        <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-simple -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-frontend-simple</artifactId>            <version>${cxf.version}</version>        </dependency>        <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-ws-addr -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-ws-addr</artifactId>            <version>${cxf.version}</version>        </dependency>        <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->        <dependency>            <groupId>javax.ws.rs</groupId>            <artifactId>javax.ws.rs-api</artifactId>            <version>2.0</version>        </dependency>        <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-transports-http -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-frontend-jaxws</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-frontend-jaxrs</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-transports-http</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>4.3.2.RELEASE</version>        </dependency>        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-core</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>servlet-api</artifactId>            <version>${servlet.api.version}</version>        </dependency>        <!-- jackson start.. -->        <dependency>            <groupId>org.codehaus.jackson</groupId>            <artifactId>jackson-core-asl</artifactId>            <version>${jackson.version}</version>        </dependency>        <dependency>            <groupId>org.codehaus.jackson</groupId>            <artifactId>jackson-mapper-asl</artifactId>            <version>${jackson.version}</version>        </dependency>        <!-- jackson end.. -->        <!-- spring quartz -->        <dependency>            <groupId>org.quartz-scheduler</groupId>            <artifactId>quartz</artifactId>            <version>${spring.quartz.version}</version>        </dependency>        <!-- spring quartz -->        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-core</artifactId>            <version>${jackson.core.version}</version>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>            <version>${jackson.core.version}</version>        </dependency>        <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjweaver</artifactId>            <version>${aspectj.version}</version>        </dependency>        <!-- alibaba duruid start.. -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>${druid.version}</version>        </dependency>        <!-- alibaba durid end.. -->        <!-- jackson start.. -->        <dependency>            <groupId>org.codehaus.jackson</groupId>            <artifactId>jackson-core-asl</artifactId>            <version>${jackson.version}</version>        </dependency>        <dependency>            <groupId>org.codehaus.jackson</groupId>            <artifactId>jackson-mapper-asl</artifactId>            <version>${jackson.version}</version>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-core</artifactId>            <version>${jackson.core.version}</version>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>            <version>${jackson.core.version}</version>        </dependency>        <dependency>            <groupId>org.codehaus.jackson</groupId>            <artifactId>jackson-jaxrs</artifactId>            <version>1.9.13</version>        </dependency>        <!-- jackson end.. -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>servlet-api</artifactId>            <version>${servlet.api.version}</version>        </dependency>        <dependency>            <groupId>jstl</groupId>            <artifactId>jstl</artifactId>            <version>${jstl.version}</version>        </dependency>        <dependency>            <groupId>org.seleniumhq.selenium</groupId>            <artifactId>selenium-java</artifactId>            <version>2.44.0</version>        </dependency>    </dependencies>    <build>        <plugins>            <!-- compiler插件, 设定JDK版本 -->            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <version>3.1</version>                <configuration>                    <source>${jdk.version}</source>                    <target>${jdk.version}</target>                    <showWarnings>true</showWarnings>                </configuration>            </plugin>        </plugins>    </build></project>
simpledemo.impl 下的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>com.demo.simpledemo</groupId>        <artifactId>SimpleDemo</artifactId>        <version>0.0.1-SNAPSHOT</version>    </parent>    <artifactId>simpledemo.impl</artifactId>    <dependencies>        <dependency>            <groupId>com.demo.simpledemo</groupId>            <artifactId>simpledemo.api</artifactId>            <version>0.0.1-SNAPSHOT</version>        </dependency>    </dependencies></project>
simpledemo.web 下的pom.xml
<?xml version="1.0"?><project    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>com.demo.simpledemo</groupId>        <artifactId>SimpleDemo</artifactId>        <version>0.0.1-SNAPSHOT</version>    </parent>    <groupId>com.demo.simpledemo</groupId>    <artifactId>simpledemo.web</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>war</packaging>    <name>simpledemo.web</name>    <url>http://maven.apache.org</url>    <build>        <finalName>simpledemo.web</finalName>    </build>    <dependencies>        <dependency>            <groupId>com.demo.simpledemo</groupId>            <artifactId>simpledemo.impl</artifactId>            <version>0.0.1-SNAPSHOT</version>        </dependency>        <dependency>            <groupId>com.demo.simpledemo</groupId>            <artifactId>simpledemo.controller</artifactId>            <version>0.0.1-SNAPSHOT</version>        </dependency>    </dependencies></project>
simpledemo.controller 下的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <parent>    <groupId>com.demo.simpledemo</groupId>    <artifactId>SimpleDemo</artifactId>    <version>0.0.1-SNAPSHOT</version>  </parent>  <artifactId>simpledemo.controller</artifactId>  <dependencies>    <dependency>        <groupId>com.demo.simpledemo</groupId>        <artifactId>simpledemo.impl</artifactId>        <version>0.0.1-SNAPSHOT</version>    </dependency>  </dependencies></project>

以上是 基本的配置文件

Controller Test Demo

1.simpledemo.controller模块下创建com.demo.simpledemo.controller包
2.创建测试类
SimpleDemoController.java
代码如下:

package com.demo.simpledemo.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import com.demo.simpledemo.vo.SimpleDemoVO;@Controller@RequestMapping("/simpleDemoController")public class SimpleDemoController {    /**     * 作为请求时 直接返回数据对象     */    @ResponseBody    @RequestMapping(value = "/getSimpleDemo" , method = RequestMethod.POST)    public SimpleDemoVO getSimpleDemo(){        return setSimpleDemo();    }    /**     * 页面跳转     * @return     */    public String getSimpleDemoByUrl(){        return "";    }    /**     * 数据封装     * @return     */    private SimpleDemoVO setSimpleDemo(){        SimpleDemoVO simpleDemoVO = new SimpleDemoVO();        simpleDemoVO.setId("testId");        simpleDemoVO.setUserName("testName");        return simpleDemoVO;    } }

通过页面进行 请求测试,更直观
index.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><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/index.js"></script></head><body>    <p> SpringMVC Test    <input type="button" value="getSimpleDemo" onclick="getSimpleDemo()">    <p> CXF Test    <input type="button" value="getSimpleDemoJson" onclick="getSimpleDemoJson()">    <input type="button" value="getSimpleDemoXML" onclick="getSimpleDemoXML()"></body></html>

index.js 代码如下:

//使用AJAX 测试function getSimpleDemo() {    $.ajax({        type : "POST",        url : "simpleDemoController/getSimpleDemo",        success : function(data) {            alert(JSON.stringify(data));        }    });};

CXF Test Demo

原创粉丝点击