如何啟動Jboss

因為工作的關係需要使用到JBoss來啟動網站,過程中也遇到了需多困難

所以就把過程整理一下,做一下筆記

(一)   在Localhost啟動 Jboss

1. 至官網下載 jboss-as-7.1.1.Final http://www.jboss.org/jbossas/downloads

2. 將檔案解壓縮後,執行 *\\ jboss-as-7.1.1.Final\bin\add-user.bat  >> 增加user

未命名3

3. 執行 *\\ jboss-as-7.1.1.Final\bin\standalone.bat >> 執行 jboss

4. 打開瀏覽器 http://localhost:8080 出現以下畫面表示已成功啟動

未命名

5. http://localhost:9990  >> jboss 管理者介面,輸入設定的帳號密碼後的畫面

未命名1

6. “再啟動 standalone.bat” 的情況下將想要deployed的war檔放置 D:\jboss-as-                   7.1.1.Final\standalone\deployments 目錄下,即可完成deployed,當資料夾中                出現  xxx.wa.deployed 檔案時 表示已經成功 deployed

7 . Jboss as 7.1.1 不支援 jdk 1.8.x , 如果環境是 jdk1.8.x的 必須安裝 jdk1.7.x

           且須設定環境變數 or 使用 Jboss WildFly or Jboss eap

(二)  在Eclipse上加入Jboss

1. Eclipse Help > Eclipse Marketplace… > 搜尋jboss tools 並安裝

2. 安裝完成後 新增一個server

未命名4

     3.在 Home Directory 設定 Jboss 的資料夾路徑

未命名5-1

4.點選完成後,在下方的server 就會出現Jboss

未命名6-1

6.接著把網站加入至此Serve下即可啟動網站

7.當使用Eclipse 出現了一個錯誤訊息

未命名7

經上網查詢料後發現只要在

D:\jboss-as-7.1.1.Final\standalone\configuration\standalone.xml 中加入

即可解決可參考http://www.cnblogs.com/wangjiajun/p/4203373.html 的解說

以上就是啟動JBoss的基本流程~

Spring 註解

Spring 提供了方法來更有效的管理創建物件,使得我們不一定要從程式中去建立物件,配置物件,只需藉由Spring Xml 中 bean 的設定即可達到對物件的管理與配置,如此也使我們的物件可以更有效的被管理

以上就是透過在xml中加入bean的方式將 class 註冊於Spring中,如此我們就可於xml去管理這個物件,這也就是Spring的核心思想( Ioc ) ,而從Spring 2.0 開始更提供了另一個方法[ 註解 ]去簡化Spring xml 的設定,註解基於Spring 就等同於bean,而 @Service ,@Controller ,@Repository, @Component 就是可以註解在 class 上的四大類 ,目前來說此四類在Spring 中都是可被註冊為Bean的,

@Component  :  是一個泛型的註解 ,可以被轉換為其他3個類型

@Service : 對應於服務層的註解

@Repository : 對應於數據訪問層(Dao)

@Controller : 對應於控制層 ( mvc 中 action 的應用 )

接著只要我們在 Spring 的 xml 中加入

去啟動自動掃描 ,所以有加入註釋的 class 就會自動被註冊為 Spring <bean>

如此一來我們的 xml 也就簡化了許多,而註解於bean中的默認名稱為 class名稱(第一個字母小寫)

這個例子來說 bean 的名稱就是 myService 如果想自已定義 bean 的名稱可用@service(“name”)

如此一來bean的名稱就為 helloWorld,這總方式產生的bean預設 是singleton(單一的),意思就是說容器只會產生這個bean一次,以下列例子來說

以上述例子來說結果就會是

wang

wang

因為 user 只會被創建一次,所以 userB 一樣是使用之前被創建的 user,所以取出來的值會是一樣的,但如果我們加入@Scope(“prototype”)

結果就會是

wang

yang

因為 prototype就是每次取得Bean時,容器會建立一個新的Bean,而不是傳回同一個Bean,所以userB會在創建一個 user 此時 userB 取出來的值就會是 user 的預設值 yang。

總結 : 註解是Spring提供的另一個方式去配置class於容器中,而不需設定在xml中,妥善的使用註解也可使我們的應用程式更為簡潔,當然Spring還提供其他的註解,此篇介紹的是屬於使用於class上面的四類註解,接下來我也將繼續探討其他的註解

何謂 Spring IOC ?

要了解Spring – Ioc前,我想先來說說 Pojo( Plain Ordinary Java Object / Pure Old Java Object)

Pojo可以被歸類為Java的一個對象(Class),但是一個Java Class卻不能說就是Pojo

因為Java Class可以Implement Interface , Extend Parent Class 但是 Pojo 就是一個

乾淨的 Class 可以包含 參數及方法 卻不能 Implement 及 Extend

Ex :

 

而在Spring – Ioc中可以管理任何的對象,但一般來說通常都會是Pojo Spring – Ioc 可以說是 Spring 的核心思想 可翻譯成控制反轉,但何謂控制反轉,控制甚麼?反轉甚麼?

其實簡單來說就是對Java 對象的控制跟我們一般的認知是相反的,一般來說當我們要建立一個物件的時候都會在應用程式中去 new Object() 並且由應用程式去賦予這個 Object 定義這就是一般的由應用程式去管理,配置所需的物件

Ex:

而在Ioc中則是相反的,Ioc會提供一個容器去產生這些物件,並且配置及管理這些物件,當應用程式需要甚麼物件時再跟Ioc 容器在提供給((DI))應用程式使用,如此一來物件的依賴關係就變成是應用程式依賴Ioc 容器,應用程式也由主動變成被動的等待Ioc來注入(DI)它所需的資源

xml

 

至於 DI ( Dependecy Injection ) 則是 Ioc 的核心 當 Ioc 幫我們創建完對象後 在應用程式運行時動態的去注入所依賴的對象

總結:

  1. Spring-Ioc 負責創建管理對象( Pojo ) >> 創建的對象會放在一個容器中
  1. 當應用程式需要使用某些對象時 由容器提供使用
  1. 應用程式的使用對象所需的資源由Ioc注入
  1. 應用程式依賴著 Ioc , 並且需要Ioc 提供對象所需的資源

5.Ioc 是一種思想,所以他可以被應用至其他地方並不是局限於Spring

以上是 Spring-Ioc 的基本概觀 , 接下來要探討的就是 Spring 在程式碼中是用甚麼方式去實現Ioc 對物件的創建,配置與管理

D3 繪製點跟線

GitHub : https://github.com/amberchenchen/D3

首先先加入  insights.standalone.js and insights.standalone.css 這兩支檔案

先準備好 Div容器 ,裝點跟線

再來就是 要有點跟線的資料

1.nodes

  • id: primary key
  • text: node  名稱
  • size: node 大小
  • cluster: node群組的屬性設定,可以把node分類然後針對這類的node去設定顏色大小等等之類的

2.links [1,2] 表示你要在node id=1 跟 node id=2 畫線

3.點跟線都有了,再來就是畫圖 運用 Insights 物件把點跟線以及div容器放入

便會出現點跟線的關析圖 (如下)

螢幕快照 2017-07-02 下午6.36.27

4.node 上的 tooltip ,呼叫已在底層寫好的 tooltip  方法,把想要呈現的內容放入

螢幕快照 2017-07-02 下午6.41.57

 

5. link 線上的 tooltip, 跟node 一樣  ,呼叫已在底層寫好的 PathTooltip方法,把想要呈現的內容放入

螢幕快照 2017-07-02 下午6.46.10

6.再來介紹node的拖拉 drag and drop

主要在 產生node時 ,加上 call back 這個方法  ex: call(node_drag)

  • dragstart : 開始拖拉
  • dragmove : 拖拉過程 , 必須同時update  node 跟 link位置
  • dragend : 拖拉結束

 

螢幕快照 2017-07-02 下午6.54.13

7. node event

首先要先在產生node時 ,先註冊你要的事件

  • click  :  單次點擊
  • dblclick : 雙次點擊

    如何區分單次點擊跟雙次點擊 : 在單次點擊設定 setTimeOut 等250毫秒在去執行單次點擊,如果等待過程中觸發的是雙次點擊那就會進入雙次點擊方法並把正在等待的timeout方法 clear掉直接執行 double click

  • contextmenu : 右鍵觸發

8. Filter node :

基本上就是呼叫 filter這個方法,然後把需要filter的條件組成Json格式放入,最後在update node

螢幕快照 2017-07-02 下午7.15.32