とあるエンジニアの備忘録

SE・コンサルタントの備忘録

Eclipse 備忘

install

java jre (luna は1.7)を確認しておく

ubuntu

1. Eclipse Downloads から[Eclipse IDE for Java EE Developers] DL
2.解凍

sudo tar zxvf eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz 
sudo mv eclipse /home/dev/work/

uninstall

sudo rm -rf /home/dev/work/eclipse/ 

日本語化

1.pleiades_X.X.X.zip をクリックしてDL
2.解凍

unzip pleiades_1.5.0.zip

3.. eclipseに追加

sudo mv features/* /home/dev/work/eclipse/features/
sudo mv  plugins/* /home/dev/work/eclipse/plugins/

4..ini に設定

echo '-javaagent:/home/dev/work/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar' | sudo tee -a /home/dev/work/eclipse/eclipse.ini

参考: Eclipse 日本語化 | MergeDoc Project

ショートカットバインドの変更

[ウィンドウ]>[設定]>[一般]>[キー]

クラスパス設定

以下エラー発生
スーパークラス "javax.servlet.http.HttpServlet" が Java ビルド・パスで見つかりませんでした

-プロジェクトを右クリック > ビルド・パス > ビルド・パスの構成 >javaのビルド・パス > ライブラリ >
 「外部jar 追加」からインストールしたTomcatの /Tomcat/lib/servlet-api.jar ファイルを追加


Spring DI bean定義ファイル

Bean定義ファイル

DI対象のクラスを設定するファイル(~~~.xml) 
 web.xml に配置場所が記述されている

context:タグ属性

	<context:annotation-config/ > 
      ↑@Autowired ,@Resourceを利用する際に記述 
       mvc:annotation-drivenが記述されている際は省略可

	<context:component-scan base-package="test1.spring.*"/> 
      ↑@Component , @Serviceなどのコンポーネントを利用する際に記述
       base-packageに利用コンポーネントを記述(カンマ区切り可)

Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ

Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ

Spring DI web.xml

web.xml

主にservletの設定や受信リクエストとのマッピング実行を設定

タグ

-context-param:DI対象のbean定義ファイルの配置場所の指定、
 -servlet:使用するservlet クラスの設定、設定ファイル場所の指定
 -servlet-mapping: 受信したリクエストと使用するservletマッピング設定

  ※Bean定義ファイルを複数指定する場合
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
                          /WEB-INF/spring/applicationContext.xml        ←※慣習で大体applicationContext.xmlと命名される
                          /WEB-INF/spring/bean-springweb.xml
                </param-value>
	</context-param>



	<servlet>
		<servlet-name>Servlet名</servlet-name>  servlet
		<servlet-class>Servletのクラス名(フルパス)</servlet-class> ←org.springframework.web.servlet.DispatcherServlet
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>servlet設定ファイル場所(フルパス)</param-value> ←/WEB-INF/spring/appServlet/servlet-context.xml
		</init-param> 
		<load-on-startup>1</load-on-startup> 複数servletを記述する場合の初期化順
	</servlet>


	<servlet-mapping>
		<servlet-name>servlet名</servlet-name> ←[servlet]タグから同じservlet-nameを見つける ex. appServlet
		<url-pattern>/</url-pattern>  ←url-patternは複数指定可
		<url-pattern>/*.html</url-pattern>
	</servlet-mapping>


Spring DI

DI (dependency injection)

ファイル構成

まずweb.xml が読み込まれ、記述された以下を参照する
-bean定義ファイルの設定、ファイル場所
-servletの設定、ファイル場所
-受信リクエストと使用するservletマッピング設定

DIの使い方

1.アノテーションを使用する方法

 DI対象クラスに@component、呼び出す側クラスのプロパティに@autowired をつける
 Bean定義ファイル以下タグを記述する必要がある

	<context:annotation-config/>
	<context:component-scan base-package="スキャン対象コンポーネント" />  ←test1.spring.*

2.Bean定義ファイル(~~.xml)にすべて記載する方法

 Bean定義ファイルにDIするクラスだけでなく、呼び出す側クラスのプロパティも記述する
 アノテーションはなくなるが、呼び出す側クラスにプロパティのアクセサを記述する

DIする使いドコロ

 -エンティティ、DB直接いじるクラスには使わない。わざわざインジェクションしない
 -サービス⇔コントローラ、サービス⇔DAO間などで実装する

代表的なアノテーション
 @Autowired  :呼び出す側 
   プロパティにつけるとcomponent-scanで指定したパッケージの@Component付いたクラスから探してくれる
   メソッドコンストラクタにつけると引数のオブジェクトをDIする

 @Component:DI対象にするクラス
   拡張した以下のアノテーションがある
                        @Controller:プレゼン系・・View周りのクラス
                        @Service:ロジック系のクラス
                        @Repository: DAO系・・DB周り



Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ

Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ

nginx 備忘

install

ubuntu

 sudo apt-get -y install nginx 
 nginx -v 

参考:How To Install LEMP Stack On Ubuntu 15.04 | Unixmen

setting

available/default

sudo nano /etc/nginx/sites-available/default

// 以下に書き換え
index index.php index.html index.htm;