Springboot + Mybatis+Dubbo+Zookeeper+nginx+redis+HTML__HTML

來源:互聯網
上載者:User

綜合學習SpringBoot+Dubbo+Zookeeper,結合平時用的架構,對常用的架構整合了一下,從架構到後台到前端,如有侵權,請聯絡刪除。

後台架構springboot+mybatis+dubbo+zookeeper+redis+nginx,其中redis做資料緩衝,nginx做頁面轉寄,資料庫用mysql。首先springboot-mybatis-dubbo-zookeeper目錄架構如下:



首先項目外層定義版本等的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.cn.bee</groupId>    <artifactId>springboot-mybatis-dubbo-zookeeper</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>pom</packaging>    <name>springboot-mybatis-dubbo-zookeeper</name>    <description>springboot-mybatis-dubbo-zookeeper</description>    <properties>        <jdk.version>1.7</jdk.version>        <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>        <maven-resources-plugin.version>2.6</maven-resources-plugin.version>        <org.mybatis.generator.version>1.3.2</org.mybatis.generator.version>        <mybatis.version>3.1.1</mybatis.version>        <mybatis-spring.version>1.2.0</mybatis-spring.version>        <mybatis-spring-boot>1.2.0</mybatis-spring-boot>        <dubbo.version>2.5.3</dubbo.version>        <zookeeper.version>3.3.6</zookeeper.version>        <zkclient.version>0.1</zkclient.version>        <com.alibaba.druid.version>0.2.6</com.alibaba.druid.version>        <spring-boot-starter-redis-version>1.3.2.RELEASE</spring-boot-starter-redis-version>    </properties>    <!-- springboot使用1.4.1.RELEASE版本 -->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.1.RELEASE</version>    </parent>    <build>        <plugins>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>${jdk.version}</source>                    <target>${jdk.version}</target>                    <encoding>UTF-8</encoding>                </configuration>            </plugin>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-resources-plugin</artifactId>                <configuration>                    <encoding>UTF-8</encoding>                </configuration>            </plugin>        </plugins>    </build>        <modules>        <!-- 主要放實體、介面、也可以放一些公用的工具類工程-->      <module>edu-web-common</module>        <!--  服務提供者工程-->      <module>edu-web-server</module>        <!-- 服務消費者工程 -->        <module>edu-web-client</module>   </modules>   <!--http://blog.csdn.net/shawearn1027/article/details/55098024--></project>
edu-web-client下面的Application.java,主要用註解方式載入Bean,而且服務提供者的啟動main方法也寫在這下面,代碼如下:

@MapperScan("com.cn.bee.dao")@SpringBootApplication@ImportResource(locations={"dubbo-provider.xml"})public class Application {    /**     * 1.啟動app層的main方法之後,會自動載入bean, @ConfigurationProperties(prefix="spring.datasource")會自動去application.properties     * 下面以spring.datasource開頭的有關資料庫連接的設定檔     * 2.通過註解@MapperScan("com.cn.bee.dao")自動掃描mybatis的mapper檔案     */   private static volatile boolean running = true;    private static Logger logger = Logger.getLogger(Application.class);    //DataSource配置    @Bean    @ConfigurationProperties(prefix="spring.datasource")    public DataSource dataSource() {        return new com.alibaba.druid.pool.DruidDataSource();    }    //提供SqlSeesion    @Bean    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();        sqlSessionFactoryBean.setDataSource(dataSource());        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();        // 配置mapper的掃描,找到所有的mapper.xml對應檔        sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/*.xml"));        // 載入全域的設定檔        sqlSessionFactoryBean.setConfigLocation(                new DefaultResourceLoader().getResource("classpath:mybatis-config.xml"));        return sqlSessionFactoryBean.getObject();    }    @Bean    public PlatformTransactionManager transactionManager() {        return new DataSourceTransactionManager(dataSource());    }    /**     * Main 方法啟動項     */    public static void main(String[] args) {        SpringApplication.run(Application.class, args);        System.out.println("============= APP Start ON SpringBoot Success =============");        synchronized (Application.class) {            while (running) {                try {                    Application.class.wait();                } catch (Throwable e) {                }            }        }    }}
啟動edu-web-client的main方法之後,會自動載入bean,  @ConfigurationProperties(prefix="spring.datasource")會自動去application.properties下面以spring.datasource開頭的有關資料庫連接的設定檔,application.properties如下:

spring.datasource.url=jdbc:mysql://localhost:3306/springbootdb?useUnicode=true&characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverdubbo.registry.center=127.0.0.1:2181dubbo.protocol.port=20885

服務提供者的dubbo-provider.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:aop="http://www.springframework.org/schema/aop"       xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"       xmlns:task="http://www.springframework.org/schema/task" xmlns:util="http://www.springframework.org/schema/util"       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/task http://www.springframework.org/schema/task/spring-task.xsd          http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd          http://code.alibabatech.com/schema/dubbo          http://code.alibabatech.com/schema/dubbo/dubbo.xsd">    <context:component-scan base-package="com.cn.bee.service.*">        <context:exclude-filter type="annotation"                                expression="org.springframework.stereotype.Controller" />    </context:component-scan>    <dubbo:application name="springBoot-service-provider-app" />    <!-- Dubbo登入位址 -->    <dubbo:registry protocol="zookeeper" address="${dubbo.registry.center}" />    <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}" threadpool="cached" threads="1000" accepts="2000" serialization="java"/>    <dubbo:service interface="com.cn.bee.service.UserService" ref="userService" timeout="3000" ></dubbo:service>    <dubbo:service interface="com.cn.bee.service.DictService" ref="dictService" timeout="3000" ></dubbo:service>    <dubbo:service interface="com.cn.bee.service.AreaService" ref="areaService" timeout="3000" ></dubbo:service></beans>

edu-web-client中其他層次的代碼就省略了,有需要可以聯絡我瞭解。同時 自己本地可以下載一個單機版的zookeeper

edu-web-common:主要放實體、介面、也可以放一些公用的工具類等待。

到了這裡,我們的服務已經可以完成了,運行application.Java的main方法,我們可以看到控制台如下,就代表成功了。


然後我們到edu-web-server,主要做服務端

application.properties如下:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.