码迷,mamicode.com
首页 > 编程语言 > 详细

dubbo+springMVC+Spring+Mybatis

时间:2017-10-20 11:48:41      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:red   ror   www.   one   cli   file   springmvc   log4   管理器   

1.新建Maven Project

1.1

技术分享

 

1.2

技术分享

 

 

2新建Maven Module ——提供者和消费者都需要引用的共同代码块(如entity和service接口)

2.1

技术分享

2.2

技术分享

 

2.3

技术分享

 

 

2.4

技术分享

 

 

3.修改common工程的JDK版本

3.1

技术分享

 

 

3.2

技术分享

 

3.3

技术分享

 

 

4.新建entity和service(可以先建数据库,再使用Mybatis的逆向工程直接生成entity)

 

4.1 entity包和service包

技术分享

 

4.2 entity类

技术分享

 

 

4.3 service类

技术分享

 

 

5.新建Maven Module ——服务提供者(Provider)

5.1

技术分享

 

 

5.2

技术分享

 

5.3

技术分享

 

 

6.给Provider工程添加java/main/resources

6.1

技术分享

 

6.2

技术分享

 

 

6.3

技术分享

 

 

6.4

技术分享

 

 

7.修改Provider工程的JDK版本

 

8.给Provider引入需要依赖的jar包和common

 

<dependencies>

<dependency>

<groupId>cn.edu.zucc</groupId>

<artifactId>common</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.0.2</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.0.2</version>

</dependency>

<!-- spring -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aspects</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc-portlet</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-instrument-tomcat</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jms</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-orm</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-oxm</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

 

<!-- mysql -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.37</version>

</dependency>

<!-- mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.3.0</version>

</dependency>

 

<!-- mybatis spring -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.2.3</version>

</dependency>

<!-- c3p0 -->

<dependency>

<groupId>c3p0</groupId>

<artifactId>c3p0</artifactId>

<version>0.9.1.2</version>

</dependency>

 

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.6.3</version>

</dependency>

 

<!-- dubbo -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.5.3</version>

</dependency>

<!-- zookeeper -->

<dependency>

<groupId>com.101tec</groupId>

<artifactId>zkclient</artifactId>

<version>0.5</version>

</dependency>

</dependencies>

 

 

9.添加配置文件

9.1(新建META-INF/spring文件夹)dubbo会读取该文件夹下的配置文件

技术分享

 

 

9.2  log4j.properties

 

### \u8BBE\u7F6E### info error debug

log4j.rootLogger = debug,stdout,D,E

 

### \u8F93\u51FA\u4FE1\u606F\u5230\u63A7\u5236\u62AC ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

 

 

9.3 applicationMybitis.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xmlns:tx="http://www.springframework.org/schema/tx"

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

        http://www.springframework.org/schema/mvc/spring-mvc.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx

     http://www.springframework.org/schema/tx/spring-tx.xsd

     http://www.springframework.org/schema/aop

     http://www.springframework.org/schema/aop/spring-aop.xsd">

        

        

        <!-- 加载配置文件 -->

        <context:property-placeholder location="classpath:META-INF/spring/db.properties"/>

        

        <!-- 数据源 ,使用dbcp-->

        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

         <property name="driverClass" value="${jdbc.driver}" />

<property name="jdbcUrl" value="${jdbc.url}" />

<property name="user" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

<!-- 最大连接数 -->

<!--<property name="maxActive" value="10" />-->

<!-- 最大等待连接中的数量 -->

<!--<property name="maxIdle" value="5" />-->

        </bean>

        

        <!-- sqlSessionFactory -->

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

         <!-- 加載mybatis的配置文件 -->

<!--        <property name="configLocation" value="classpath:conf.xml" />-->

<property name="typeAliasesPackage" value="cn.edu.zucc.entity"></property>

         <!-- 数据源 -->

         <property name="dataSource" ref="dataSource"/>

        </bean>

        

        <!-- mapper批量扫描,从mapper包中扫描出mapper接口,自动创建代理对象并且在spring容器中注册 -->

        <!-- 自动扫描出来的mapper的bean的id为mapper类名(首字母小写) -->

        <!-- 扫描多个包用,分开 -->

        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

         <property name="basePackage" value="cn.edu.zucc.dao" />

         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

        </bean>

        

        <!-- 事物管理器

mybatis操作数据库事物控制,spring使用Jdbc的事物控制类

 -->

<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<!-- 数据源

 dataSource在applicationContext-dao.xml中配置了

  -->

<property name="dataSource" ref="dataSource"></property>

</bean>

 

 

<!-- 通知 -->

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<!-- 传播行为 -->

<tx:method name="save*" propagation="REQUIRED" />

<tx:method name="add*" propagation="REQUIRED" />

<tx:method name="insert*" propagation="REQUIRED" />

<tx:method name="update*" propagation="REQUIRED" />

<tx:method name="delete*" propagation="REQUIRED" />

<tx:method name="find*" propagation="SUPPORTS" read-only="true" />

<tx:method name="*" propagation="SUPPORTS" read-only="true" />

</tx:attributes>

</tx:advice>

 

<!-- aop -->

<aop:config>

<aop:advisor advice-ref="txAdvice"

pointcut="execution(* cn.edu.zucc.service.impl..*.*(..))" />

</aop:config>

 

</beans>

 

 

 

9.4 dubbo.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:dubbo="http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation="http://www.springframework.org/schema/beans       

    http://www.springframework.org/schema/beans/spring-beans.xsd       

    http://code.alibabatech.com/schema/dubbo        

    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

 

 

<!-- 提供方应用信息,用于计算依赖关系 -->

<dubbo:application name="dubbo_provider" />

 

<!-- 使用zookeeper注册中心暴露服务地址 -->

<dubbo:registry  address="115.28.93.69:2182" protocol="zookeeper"/>

 

<!-- 用dubbo协议在20880端口暴露服务 -->

<dubbo:protocol  name="dubbo" port="20880" />

 

 

<!-- 声明需要暴露的服务接口 -->

<dubbo:service interface="cn.edu.zucc.service.UserService" ref="userService" />

<bean id="userService" class="cn.edu.zucc.service.impl.UserServiceImpl"></bean>

 

 

</beans>

 

 

9.5 db.properties

 

 

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql:///dubbo_test

jdbc.username=root

jdbc.password=123456

 

 

10.新建service、dao、util包

10.1

技术分享

 

 

10.2 StartUp.java 启动Provider

技术分享

 

10.3 userService

技术分享

 

10.4 dao层可以使用Mybatis自动生成,也可以自己建

 

 

11 启动dubbo (要先部署好zookeeper)

11.1使用jvm运行

 

技术分享

 

 

11.2启动成功

技术分享

 

技术分享

 

 

12 新建Consumer(web项目)

12.1

技术分享

12.2

技术分享

 

 

12.3

技术分享

 

 

13 修改Consumer项目的JDK版本

14 引入jar包和common

<dependencies>

<dependency>

<groupId>cn.edu.zucc</groupId>

<artifactId>common</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>cn.edu.zucc</groupId>

<artifactId>commons</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<!-- 日志 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.5.3</version>

<exclusions>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>com.101tec</groupId>

<artifactId>zkclient</artifactId>

<version>0.5</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.0.2</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.0.2</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.7.5</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>1.7.5</version>

</dependency>

<!-- j2ee -->

<dependency>

<groupId>org.apache.openejb</groupId>

<artifactId>javaee-api</artifactId>

<version>5.0-1</version>

<scope>provided</scope>

</dependency>

 

<!-- spring -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aspects</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc-portlet</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-instrument-tomcat</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jms</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-orm</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-oxm</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>4.2.2.RELEASE</version>

</dependency>

<!-- mysql -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.37</version>

</dependency>

<!-- mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.3.0</version>

</dependency>

 

<!-- mybatis spring -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.2.3</version>

</dependency>

<!-- c3p0 -->

<dependency>

<groupId>c3p0</groupId>

<artifactId>c3p0</artifactId>

<version>0.9.1.2</version>

</dependency>

 

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.6.3</version>

</dependency>

<!-- 文件上传下载 -->

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.3.1</version>

</dependency>

<!-- jstl -->

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

 

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

<scope>provided</scope>

</dependency>

</dependencies>

 

 

15修改web.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" 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_2_5.xsd">

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:applicationContext.xml;<!--  classpath:applicationMybatis.xml--></param-value>

</context-param>

 

<listener>

<description>spring监听器</description>

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

</listener>

 

<servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>WEB-INF/classes/springmvc.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

 

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>*.action</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>login.jsp</welcome-file>

</welcome-file-list>

</web-app>

 

16添加配置文件

16.1

技术分享

 

 

16.2 springMVC.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

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

        http://www.springframework.org/schema/mvc/spring-mvc.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context.xsd">

<context:annotation-config/>

    <context:component-scan base-package="cn.edu.zucc.controller" />

   

    

<bean id="mappingJacksonHttpMessageConverter"

          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">

        <property name="supportedMediaTypes">

            <list>

                <value>application/json;charset=UTF-8</value>

            </list>

        </property>

    </bean>

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

        <property name="messageConverters">

            <list>

                <ref bean="mappingJacksonHttpMessageConverter"/>

            </list>

        </property>

    </bean>

    

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<!-- 设置上传文件的最大尺寸为5MB -->

<property name="maxUploadSize">

<value>5242880</value>

</property>

</bean>

 

 

 

</beans>

 

 

 

16.3 dubbo_consumer.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:dubbo="http://code.alibabatech.com/schema/dubbo"

    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://code.alibabatech.com/schema/dubbo        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->

<dubbo:application name="dubbo_consumer" />

 

<!-- 使用zookeeper注册中心暴露服务地址 -->

<dubbo:registry  address="115.28.93.69:2182" protocol="zookeeper" />

 

<!-- 生成远程服务代理,可以像使用本地bean一样使用demoService -->

<dubbo:reference id="userService"interface="cn.edu.zucc.service.UserService" check="false" timeout="60000"/>

</beans>

 

 

16.4 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:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

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

         http://www.springframework.org/schema/tx

     http://www.springframework.org/schema/tx/spring-tx.xsd

      http://www.springframework.org/schema/aop

      http://www.springframework.org/schema/aop/spring-aop.xsd">

<context:annotation-config />

<context:component-scan base-package="cn.edu.zucc.service" />

<import resource="dubbo_consumer.xml"/>

</beans>

 

 

16.5 log4j.properties和Provider的是一样的

17 新建Controller包和类

 

17.1

技术分享

 

 

17.2 Controller

 

技术分享

 

 

18 启动Consumer(可以使用Tomcat)

19 访问http://localhost:8080/Consumer/register.action

20 消费者注册成功

技术分享

 

技术分享




dubbo+springMVC+Spring+Mybatis

标签:red   ror   www.   one   cli   file   springmvc   log4   管理器   

原文地址:http://www.cnblogs.com/jtlgb/p/7698453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!