liguofeng29’s blog

個人勉強用ブログだっす。

Spring4 - 零配置ファイル - Annotation利用

Springは「配置より規約」を採用してなく、Annotationを利用してどれをBeanとして扱うを決める。 SpringのBean定義用Annotaion @Component @Controller @Service @Repository ライフサイクルAnnotation @PostConstruct @PreDestory Spring3.0追加 @DependsOn…

Spring4 - BeanFactoryPostProcessor - PropertyPlaceholderConfigurer

PropertyPlaceholderConfigurerは、 propertiesファイルを読み取り、Springコンテナーのデータとして使える。 package app.propertyOverrideConfigurer; public class Japanese{ private int age; // 年齢 private String name; // 名前 public void setAge(…

Spring4 - BeanFactoryPostProcessor - PropertyPlaceholderConfigurer

PropertyPlaceholderConfigurerは、 propertiesファイルを読み取り、Springコンテナーのデータとして使える。 package app.beanFactoryPostFrocessor; public class Japanese{ private int age; // 年齢 private String name; // 名前 public void setAge(in…

Spring4 - BeanFactoryPostProcessor

BeanFactoryPostProcessorはSpringコンテナーの生成後の後処理をサポートする。 BeanFactoryPostProcessorのIF postProcessBeanFactory サンプル package app.beanFactoryPostFrocessor; public class Japanese{ private int age; // 年齢 private String na…

Spring4 - BeanPostProcessor

BeanPostprocessorはBeanの生成後の後処理をサポートする。 BeanPostProcessorはbeanの初期化処理前後に処理を入れることができ、beanに対して共通処理を行える BeanPostProcessorのIF postProcessBeforeInitialization postProcessAfterInitialization サン…

Spring4 - SpEL

package app.spel; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.spri…

Spring4 - Springフレームワークの本質

Springフレームワークの本質はXML配置を通してJaveコードを実行することです。 ほぼ全てのjavaコードはSpring配置ファイルで管理できる。 要約 インスタンスを生成する : <bean.../> setterメソッド : <property.../> getterメソッド : PropertyPathFactoryBean OR <util:property-path.../> メソッド : Me</util:property-path.../></property.../></bean.../>…

Spring4 - Beanのライフサイクル

singleton - クライアントはBeanのライフサイクルに関与できない prototype - コンテナーはBeanの生成後、ライフサイクルに関与できない DI後の行為 init-method属性 InitializingBeanインタフェース Bean破棄後の行為 destory-method属性 DisposableBeanイ…

Spring4 - 抽象Beanと子Bean

下記定義は、人間は共通で目2個、口1個であることを定義してある。

Spring4 - Beanを生成する三つの方式

コンストラクタによる生成 <constructor-arg.../> 静的factoryによる生成 : 工場Beanを生成する必要がない factory-method 動的factoryによる生成 : 先に工場Beanを生成する factory-bean factory-method </constructor-arg.../>

Spring4 - XML設定ファイルをjavaクラスで記述する

Spring3.0からXML定義だけではなくjavaクラスでも定義可能である。 Java配置クラス常用Annotaion @Configuration : class修飾、設定ファイルであること @Bean : method修飾、Beanであること @Value : field修飾、変数であること @Import : class修飾、他のJa…

Spring4 - 設定ファイル関連キーワード

<beans.../> : Spring設定ファイルのルート defalut-lazy-init defalut-merge defalut-autowire defalut-autowire-condidates defalut-init-method defalut-destory-method <bean.../> id : 唯一識別 class : クラス指定 name : カンマ区切りで複数指定可能 スコープ singoleton p</bean.../></beans.../>…

Spring4 - ApplicationContextAware、BeanNameAware

・BeanFactory - BeanFactoryを取得する ・ApplicationContextAware - ApplicationContextを取得する ・BeanNameAware - BeanのIDを取得する ApplicationContextAwareサンプル package app.aware; import org.springframework.beans.BeansException; import …

Spring4 - イベント通知仕組みサンプル

ApplicationContextによるイベント通知仕組み 1.ApplicationEventのサブクラスを実装する package app.event; import org.springframework.context.ApplicationEvent; public class SampleEvent extends ApplicationEvent { public SampleEvent(Object sou…

Spring4 - ApplicationContextによる国際化サンプル

1.定義 beanMessage.xml

Spring4 - ApplicationContext

一般的にはSpringコンテナーとしてBeanFactoryのサブインタフェースであるApplicationContextを利用する。 拡張機能 singletonのBeanをデフォルトで初期化し、配置で初期化のキャンセルもできる MessageSourceインタフェースを継承し、国際化を提供する リソ…

Spring4 - Springコンテナー(BeanFactory)

SpringコンテナーはBean形式で配置、生成、管理(ライフサイクル)を行う。 BeanFactoryは最も基本的なSpringコンテナーのインタフェースである。 package app; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.spr…

Spring4 - DI種類

SpringのDI方式は下記2種類がある コンストラクターによるDI setterによるDI ココを一部修正 package app.impl; import app.Pen; import app.Person; public class Japanese implements Person{ private int age; // 年齢 private String name; // 名前 priv…

Spring4 - DI (依頼注入)サンプル

SpringのDI(Dependency Inject - 外部注入)を試してみよう。 Springはインタフェース指向のプログラミングを推奨する。よって規範と実装を分離し疎結合を実現する。 1. 人とペンのインタフェースを定義する package app; public interface Person { public …

Struts2 - タグ - tokenタグ -2重送信防止

Strun2のtokenタグを使い2重送信(多重submit)を防止できる。 1. 入力画面を作成する(2重送信防止する画面) s-token.jsp <%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>s:</title></head></html>…

Struts2 - タグ - UIタグ

struts2のUIタグは、formタグと非formタグ2種類ある。 formタグ textfield head checkboxlist radio select optgoup updownselect doubleselect optiontransferselect token : 2重サブミット防止 非formタグ actionerror : getActionErrors() != nullの場合…

Struts2 - タグ - データタグ

データタグはデータアクセス関連機能を提供する。Action内の属性、国際化など。 データタグ種類 s:action : Action実行、結果viewを読み込む s:bean : インスタンス生成 s:param : パラメータ提供 s:date : 日付出力、指定日付との差出力 s:push : Value Sta…

Struts2 - タグ - 制御タグ

制御タグはプロセス制御、ValueStackの操作などを行う。 制御タグ種類 if elseIf/elseif else append : 集合結合 generator : 分割 iterator : 集合巡り merge : 集合結合 subset : 集合一部取得 sort : ソート if/elseif/else <%@ page contentType="text/h…

Struts2 - タグ分類

struts2のタグ分類。 ・非UIタグ 制御タグ データタグ ・UIタグ formタグ 非formタグ ・Ajaxタグ

Struts2 - Stack Context

<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>WELCOME</title> </head> <body> Value Stack:<br> ユーザ名:<s:property value="username"/><br> パスワード:<s:property value="password"/><br> Stack Conte…</s:property></s:property></body></html>

Struts2 - interceptor - 権限チェックを行う

1. interceptorを実装する package interceptor; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.inte…

Struts2 - interceptor

Struts2では、actionメソッド前後の処理(interceptor)を定義できる。 ・interceptor定義関連要素 <interceptors..> : rootタグ <interceptor..> : interceptor定義 <interceptor-stack..> : interceptorのstack定義 <interceptor-ref..> : interceptor参照 <param..> : interceptorのパラメータ定義 <default-interceptor-ref..> : デフォルトinterceptor ・デフォルトのin</default-interceptor-ref..></param..></interceptor-ref..></interceptor-stack..></interceptor..></interceptors..>…

Struts2 - ajax - jsonプラグイン利用

struts2-json-plugin-xx.xx.xx.jarを使い、ResultのタイプでJSONを使用できる。 sturts.xml 略 <constant name="struts.i18n.encoding" value="UTF-8"/> <package name="example" extends="json-default"> <action name="JSONExample" class="action.JSONExampleAction"> <result type="json"> </result></action></package></constant>

Struts2 - ajax - streamタイプ利用

struts.xml 略・・・ <action name="register" class="action.RegisterAction"> <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action> RegisterAction.java 略・・・ public String execute() throws E…

Struts2 - validation(annotationと手動)

Struts2の検証は、検証ファイル以外にannotationと手動でも実現できる。 annotation利用 setterにannnotationをつける @RequiredStringValidator(key="name.requried") public String getName() { return this.name; } @RequiredStringValidator(message="an…