mysql讀寫分離實戰準備一

flzhang發表於2017-07-06

一目的

首先準備一個web網站,這裡模擬一個網站的頁面,主要對開源網頁實現動態存取,之後將使用本頁面進一步實現對mysql的讀寫分離功能

二架構

前臺是開源網頁的頁面,具體例子可從如下網站下載

http://www.superslide2.com/

後臺採用springboot+thymeleaf開發

1前端頁面整合

複製網站例項頁面,到如下路徑/template/case1page

  複製靜態頁面包括js檔案到/static

2後臺整合

Pom中加入相應jar包依賴,且未方便開發可以加入熱部署相關依賴,例如

<build>

         <plugins>

              <plugin>

                   <groupId>org.springframework.boot</groupId>

                   <artifactId>spring-boot-maven-plugin</artifactId>

                   <dependencies>

                <!-- spring熱部署-->

                <dependency>

                    <groupId>org.springframework</groupId>

                    <artifactId>springloaded</artifactId>

                    <version>1.2.1.RELEASE</version>

                </dependency>

              </dependencies>

              </plugin>

         </plugins>

     </build>

 

整合mybatis

Application中編寫設定注入資料來源和SqlSessionFactory的方法如下

@Bean

    @ConfigurationProperties(prefix="spring.datasource")

    public DataSource dataSource() {

        return new org.apache.tomcat.jdbc.pool.DataSource();

                 //com.alibaba.druid.pool.DruidDataSource();

    }

3 資料庫設計

主要採用兩個表SD_CATEGORYSD_LABLE_SWITCH,存放對應頁面中標題和標題中相關的詳細資料。具體建表和資料可見附件指令碼

 

三實際功能

頁面中實現了12demo的動態效果

已第11demo為例。說明實現方式

1靜態頁面中資料樣式如下

<li class="nLi">

                                               <h3><a href="http://www.SuperSlide2.com" target="_blank">新聞

                                               <ul class="sub">

                                                        <li><a href="#">新聞首頁</li>

                                                        <li><a href="#">新聞人物</li>

                                                        <li><a href="#">新聞電視</li>

                                                        <li><a href="#">新聞圖片</li>

                                                        <li><a href="#">新聞視訊</li>

                                                        <li><a href="# ">新聞專題</li>

                                               </ul>

                            </li>

                            <li class="nLi">

                                               <h3><a href="http://www.SuperSlide2.com" target="_blank">預告片

                                               <ul class="sub">

                                                        <li><a href="#">新聞首頁</li>

                                                        <li><a href="#">新聞人物</li>

                                                        <li><a href="#">新聞電視</li>

                                                        <li><a href="#">新聞圖片</li>

                                                        <li><a href="#">新聞視訊</li>

                                                        <li><a href="# ">新聞專題</li>

                                               </ul>

                            </li>

根據上面資料顯示方式確定現在後臺存放資料的結構是,用一個物件存放標題和條目資料(List),然後再用一個組列表存放這些物件,已此來對應頁面的結構

2頁面顯示方式如下

<li class="nLi" th:each="list:${grp11List}">

                            <h3><a href="http://www.SuperSlide2.com" target="_blank" th:text="${list.TP_NM}">新聞</a></h3>

                            <ul class="sub">

                                  <li th:each="lableList:${list.lable}">

                                    <a href="#">

                                     <p th:text="${lableList.LAB_NM}">新聞首頁</p>

                                    </a>

                                   </li>

                                 

                            </ul>

                 </li>

 

後臺存放方式

在處理對應demo例項的controller裡組織資料的邏輯如下

//查詢標題

      List<GrpTitle> grpTitle = userService.getGrpTitle(caseId);

      //查詢每個標題時,找出所有對應lable資料並放入一個grplist

      for (GrpTitle title : grpTitle) {

            List<Lable> lable = userService.getLableInfo(title.getGRP_ID());

            FullContent cont = new FullContent();

            cont.setTP_NM(title.getTP_NM());

            cont.setLable(lable);

            //把所有grplist放到一個list

            grpList.add(cont);

           }

      //加入case1 返回需要的結果

      model.addAttribute("grp11List", grpList);

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/750077/viewspace-2141670/,如需轉載,請註明出處,否則將追究法律責任。

相關文章