2016年3月12日 星期六

Spring Boot using SpringBootApplication Annotation


續上篇 Spring Boot Hello 文章

本文主要說明 @SpringBootApplication

一、程式內容

@SpringBootApplication 此annotation 等於使用@Configuration, @EnableAutoConfiguration and @ComponentScan 。
使用預設參數設定



程式內容: Application.java
圖1
 package com.test.springboot;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 /**
  * @author levin 2016/3/11 下午11:42:11
  */
 @SpringBootApplication
 public class Application {
  public static void main(String[] args) {
   SpringApplication.run(Application.class, args);
  }
 }
 


二、注意Spring Boot版本,@SpringBootApplication可使用的方法不一樣

1、Spring Boot for 1.2.x:

圖2

2、Spring Boot for 1.3.x:

圖3

Example:
此例改一下程式的package
圖4
 com
   +- test
    +- springboot
    |+-config
    | +-Application.java
    |
    |+-controller
     +-HelloBootController.java
 
程式內容: Application.java

圖5
  package com.test.springboot.config;
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.SpringBootApplication;
  /**
   * @author levin 2016/3/11 下午11:42:11
   */
  @SpringBootApplication(scanBasePackages = {
    "com.test.springboot.config",
    "com.test.springboot.controller" })
  public class Application {
   public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
   }
  }
 


圖6 啟動main -> 右鍵->Run As.. -> Java Application
測試 http://localhost:8080/


三、測試專案下載
程式放在github
專案名為SpringBootByTest2.rar
專案名為SpringBootByTest2_1.rar























其它文章

Spring Boot Hello


本文說明用Spring Boot 建構Web應用專案。


一、本文使用相關技術及軟體

Eclipse IDE Version: Kepler Service Release 2
JAVA JDK: 7.0_60
Maven :3.0.5

二、取得相關Jar檔
pom.xml加入Spring Boot相關設定

 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <version>1.3.3.RELEASE</version>
 </dependency>
 
圖1 pom.xml



三、建立主要測試程式

本測試專案只需二支JAVA檔:
1、Application.java
2、HelloBootController.java
圖2

程式內容: Application.java

圖3
 package com.test.springboot;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 /**
  * @author levin 2016/3/11 下午11:42:11
  */
 @Configuration
 @ComponentScan
 @EnableAutoConfiguration
 public class Application {
  public static void main(String[] args) {
   SpringApplication.run(Application.class, args);
  }
 }
 

說明:
@Configuration 使用 Java Class 作為設定,(非XML)
@ComponentScan自動掃描 Spring Bean 元件
@EnableAutoConfiguration 啟用 Spring Boot 自動配置,將自動判斷專案使用到的套件,建立相關的設定。

註:
使用自動掃描時,會掃描此class 的package下的程式。
 com
   +- test
    +- springboot
    +-Application.java
    |
    |+-controller
     +-HelloBootController.java
 

本專案從package com.test.springboot下自動掃描底下的程式。
參考:Using Spring Boot Using the “default” package




程式內容:HelloBootController.java
圖4
 package com.test.springboot.controller;

 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;

 /**
  * @author levin 2016/3/11 下午11:42:11
  */
 @RestController
 public class HelloBootController {
  @RequestMapping("/")
  public String helloPage() {
   return "Hello! Spring Boot!";
  }

  @RequestMapping("/hello/{name}")
  public @ResponseBody
  String hello(@PathVariable("name") String name) {
   return "Hello " + name;
  }
 }
 

說明:
Spring 4.0 新增的@RestController ,如果要使用RESTful Web Services 可以使用這Annotation

在hello 方法這使用RESTful,加入{}對URL進行參數化。
加入 @PathVariable 讓Spring自動將對應的URL參數轉換為此方法的參數

四、測試專案
1、點選Application.java
圖5


2、啟動
圖6

3、開啟瀏灠器輸入 http://localhost:8080/
  Spring Boot 預設使用8080 port
圖7

圖8 輸入 http://localhost:8080/hello/levin
levin 改為你的名字,就會顯示在頁面上。



五、測試專案下載
程式放在github,專案名為SpringBootByTest1.rar

推薦書品:
Eclipse完全攻略(第四版)[Gradle自動化建構Java開發專案]

Java分散式處理實務精要:奠定雲端基礎的63個思考術

求職加分!進入IT產業必讀的324個 Java面試決勝題:從求職準備、面試流程、開發心得、重點回顧到經典試題的完整剖析

我的Java程式比你的快10倍:從概念到工具的極度優化

Java 效能優化指南

Java程式設計師面試寶典

比MySQL快60倍:Redis記憶體儲存資料庫快速上手












































其它文章

2016年3月6日 星期日

UML Tool for Eclipse



本文介紹一個可以劃UML的工具。

一、下載

進入下載頁
圖1



本文下截 com.umlet.plugin-14.1.zip
依不同時間會有不同的版本。下載最新即可。

二、安裝
這步很簡單,只要先解壓縮com.umlet.plugin-14.1.zip
有個 com.umlet.plugin-14.1.jar
將JAR複製到eclipse 下的 plugins 下
圖2


三、使用
開啟eclipse
File -> New -> Other
選擇Other -> Umlet diagram
圖3


圖4 選擇存放位置 及 檔名


圖5 開啟介面,直接點 *.uxf檔


圖6
右邊框為uml元件介面
左邊框為UML編輯介面
在右邊框的uml介面,在元件上點二下就可以在左邊框應用


參考:
UMLet - UML Tool for Fast UML Diagrams 說明

Free UML Tool for Fast UML Diagrams

Free UML Tool 相關問題

此工具相關教學


推薦書品:
Eclipse完全攻略(第四版)[Gradle自動化建構Java開發專案]

Java分散式處理實務精要:奠定雲端基礎的63個思考術

求職加分!進入IT產業必讀的324個 Java面試決勝題:從求職準備、面試流程、開發心得、重點回顧到經典試題的完整剖析

我的Java程式比你的快10倍:從概念到工具的極度優化

Java 效能優化指南

Java程式設計師面試寶典
























其它文章

2016年3月5日 星期六

Apache httpd VirtualHost


一、說明
建立虛擬Host
本文用多個 Domain Name ,都在同一台主機上。
在apache文件中有二種
1、Name-based Virtual Host
2、single IP Virtual Host

參考:Apache HTTP Server Version 2.4 Virtual Host Support


圖1

二、編輯httpd.conf
D:\Apache24\conf\httpd.conf
    編輯移httpd.conf到內容的最後一行
圖2

<VirtualHost *:8081>
DocumentRoot "D:/Apache24/htdocs"
ServerName localhost
</VirtualHost>

<VirtualHost *:8081>
DocumentRoot "D:/Apache24/test/www/example1"
ServerName www.test1.com
</VirtualHost>

<VirtualHost *:8081>
DocumentRoot "D:/Apache24/test/www/example2"
ServerName www.test2.com
</VirtualHost>

DocumentRoot 需配合 Directory,一個配一個

<Directory "D:/Apache24/test/www/example1">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory "D:/Apache24/test/www/example2">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

圖2-1
localhost 的原本conf裡就有了。
我們移到設定檔上方改。
設定上面原本的ServerName 為localhost:8081




三、設定host
圖3 因為本文需要測試,故設定host檔。(內部使用)
目錄:C:\Windows\System32\drivers\etc
檔名:hosts
如有你有 DNS server ,必需將你的虛擬Domain Name 加入到 DNS server應該就可以了。




四、測試準備
圖4 放入測試檔index.html
D:/Apache24/test/www/example1
內容:

圖5 放入測試檔index.html
D:/Apache24/test/www/example2
內容:

五、測試
啟動httpd.exe -> 開啟browser  -> http://localhost:8081 ->

圖6 測試localhost
http://localhost:8081/index.html

圖7 測試www.test1.com
http://www.test1.com:8081/

圖8 測試www.test2.com
http://www.test2.com:8081/


其它相關:



參考:
Apache HTTP Server Version 2.4 VirtualHost Examples

























其它文章

Apache httpd Virtual Directory


建立虛擬目錄

一、使用Apache mod_alias
修改 httpd.conf
LoadModule alias_module modules/mod_alias.so

圖1


二、設定
修改 httpd.conf 找到 <IfModule alias_module>
圖2


三、可以看到三個應用
Redirect : 重導向
說明:
Redirect(空一格)本機的url合命名稱(空一格)新的url位置

例:
Redirect /foo http://www.example.com/bar
圖3


圖4
localhost:8081/foo

圖5 自動導向
http://www.example.com/bar



Alias    : 別名
說明:用於訪問內容並不位於DocumentRoot下。
Alias (空一格)本機的資料夾名稱(空一格)指定到本機的另一個資料夾名稱
Alias /test /Apache24/test/html/

需配合Directory:
<Directory "D:/Apache24/test/html/">
Require all granted
</Directory>
圖6



圖7 加入D:\Apache24\test\html\index.html


圖8 啟動httpd.exe -> 開啟browser  ->http://localhost:8081 ->


圖9 http://localhost:8081/test/index.html



ScriptAlias : 腳本別名
說明:通常有使用cgi時,來指定目錄
本文不實作cgi。什麼是CGI
                 參考:ScriptAlias Directive

其它相關:




參考:
Apache Module mod_alias

























其它文章

Apache httpd modules 模組


httpd modules 是主要模組
一、查看基本支援的模組
Apache24\conf\httpd.conf
圖1  Dynamic Shared Object (DSO) Support

如果在LoadModule前面有# ,是註解,代表不啟用此模組


二、另外還有第三方模組
Apache httpd modules 


三、主要基本模組及用法說明
進入 Apache HTTP Server Version 2.4 Module Index

























其它文章

Apache httpd 基本設定


續上一篇: Apache http server 下載安裝

本文主要是httpd 基本設定
主要設定檔是Apache24/conf/httpd.conf

本文Apache http server 目錄在D:/Apache24

一、Apache http server 主要目錄位置
改ServerRoot
圖1 改Apache httpd.conf
D:/Apache24/conf/httpd.conf


圖2 改ServerRoot
ServerRoot "c:/Apache24"
改為
ServerRoot "D:/Apache24"


二、Apache http server 文檔位置
改DocumentRoot

圖3
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
改為
DocumentRoot "D:/Apache24/htdocs"
<Directory "D:/Apache24/htdocs">

圖4 有個測試用的index.html


三、Apache http server Listen post
設定監聽(Listen )的post號
改 Listen
圖5
Listen 80
改為
Listen 8081


四、 執行

圖6 執行httpd.exe
開cmd 命令提示字元
進入  d:/Apache24/bin
指令  httpd.exe



五、執行錯誤
圖7 如果出顯以下訊息,是說你設定Listen 的 post 已被其它軟體使用了。
(OS 10013)嘗試存取通訊端被拒絕,因為存取權限不足。  : AH00072: make_sock: could
not bind to address [::]:8080
(OS 10013)嘗試存取通訊端被拒絕,因為存取權限不足。  : AH00072: make_sock: could
not bind to address 0.0.0.0:8080
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs


參考:[win7]查出誰佔用了指定Port號



六、測試
圖8 測試
http://localhost:8081/index.html
看到這頁就成功了喔!!!!


圖9 D:/Apache24/htdocs/index.html
修改index.html
加入
<h2>Apache http server test !!!!!</h2>

圖10 http://localhost:8081/index.html



七、離開
如果你不使用Apache http server
就關掉cmd視窗即可。
























其它文章

Apache http server 下載安裝


說明:
apache http server
appche httpd

一、Apache httpd 下載
穩定版本 - 最新版本:
Apache HTTP Server 2.4.18 (httpd):
2.4.18 是最新版本2015年12月14日(發布2015年12月14日)
進入下載頁

圖1

Win OS 版本需到Apache Lounge

圖2 另(modules 要另外下載

圖3 modules 要另外下載

舊版本:(發布2015-07-17)
Apache HTTP Server 2.2.31 (httpd) 2015-07-15
進入下載頁

圖4

Apache 2.2 VC10 Windows 64

圖5 (modules 要另外下載)

Apache 2.2 VC10 Windows 32

圖6 (modules 要另外下載)


二、安裝

本文
OS 使用 Windows 7
httpd使用 httpd-2.4.18-win64-VC14.zip
到這下載 https://www.apachelounge.com/download/
圖7 解壓縮檔 httpd-2.4.18-win64-VC14.zip




圖8 進入httpd-2.4.18-win64-VC14資料夾


圖9  可將 Apache24 放到你想放的位置
本文將Apache24 複製到D:/下



圖10 進入D:\Apache24


圖11 進入D:\Apache24\bin 執行 httpd.exe


圖12 系統錯誤 - 遺失VCRUNTIME140.dll


圖13
 請確保您已經安裝了C ++可再發行的Visual Studio 2015年更新1:vc_redist_x64 / 86.exe


圖14  下載VC_redist.x64.exe

圖15  安裝VC_redist.x64.exe

圖16  開cmd
進入 D:\Apache24\bin
下啟動 httpd.exe
如果出顯此錯誤,是因為Apache預設目會在C:/Apache24
httpd.exe: Syntax error on line 37 of D:/Apache24/conf/httpd.conf: ServerRoot mu
st be a valid directory
(如果你在圖9時,是複製到C:/Apache24,就沒有此問題了)


下一篇: Apache httpd 基本設定






















其它文章

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...