読者です 読者をやめる 読者になる 読者になる

liguofeng29’s blog

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

spring4 - @Qualifier, alias

@Qualifierは、bean名を指定してDIを行う package spring4.second; public interface SomeService { public String getMessage(); } package spring4.second; import org.springframework.stereotype.Component; @Component("SomeServiceAImpl") public cl…

Spring4 - BeanFactoryPostProcessor

Beanを遅延生成させる @Component public class LazyInitBeanFactoryPostProcessor implements BeanFactoryPostProcessor { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { for (Stri…

jQueryを埋め込む

if (!window.jQuery) { document.body.appendChild((function(){ var s = document.createElement("script"); s.type = "text/javascript"; s.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"; return s; })()); } $.fn.jquery

GebConfig.groovyに共通定数を追加する

browser.config.rawConfig.[key] GebConfig.groovy id = "test@gmail.com" pass = "password" SomeScript.groovy browser.config.rawConfig.id browser.config.rawConfig.pass

groovy,geb(selenium),spockによる自動化テスト その11- Report機能

gebは検証pageに対するレポート機能(HTML,PNG)を提供している。 ・シナリオ リスナー定義&追加(レポートする度にprintlnが実行される) googleに移動する レポートする yahooに移動する レポートする googleに移動する レポートする yahooに移動する レポー…

groovy,geb(selenium),spockによる自動化テスト その10- GebConfig.groovy

GebConfig.groovyはGebの環境設定ファイルである。 参考: http://www.gebish.org/manual/1.1/ Geb attempts to load a ConfigSlurper script named GebConfig.groovy from the default package (in other words, in the root of a directory that is on the…

groovy,geb(selenium),spockによる自動化テスト その9 - Page Object Pattern - Module

複数の画面で使う共通部品(メニュとか)はMoudleを継承することで再利用できる。 import geb.Browser import geb.Module import geb.Page Browser.drive { to YahooTopUseModule 検索モジュール.検索欄.value("検索内容") 検索モジュール.検索ボタン.click() …

groovy,geb(selenium),spockによる自動化テスト その8 - Page Object Pattern - Pageの属性

Pageオブジェクトの属性 url属性 : PageのURLを表す ・シナリオ 相対パス指定のpageに移動 (to ExamplePage1) 絶対パス指定のpageに移動 (to ExamplePage2) 引数指定のpageに移動 (to ExamplePageWithArguments) インスタンス引数指定のpageに移動 (to Ex…

groovy,geb(selenium),spockによる自動化テスト その7 - Page Object Pattern

gebのPage Object Page Object Patternとは? PageObjectデザインパターンとは、アプリケーションの画面を1つのオブジェクトとしてとらえるデザインパターンの1種のことです。 Seleniumの公式サイトでも推奨されている、保守性の高いテストコードの書き方…

groovy,geb(selenium),spockによる自動化テスト その6

gebでjavascriptを利用する javascript変数を取得 メソッド呼び出し js追加 script6.html <html> <title>for javascript</title> <script type="text/javascript"> var var1 = 100; function add(a, b) { return a + b; } </script> <body> </body> </html> script6_js.groovy /** * Geb for javascript * * http://www.gebish.org/manual/ * * …

groovy,geb(selenium),spockによる自動化テスト その5

gebでframeを操作する方法 直接操作する Page Objectを利用する script5.html <html> <body> <iframe name="header" src="script5_header_frame.html"></iframe> <iframe id="content" src="script5_content_frame.html"></iframe> <iframe id="footer" src="script5_footer_frame.html"></iframe> </body> </html> script5_header_frame.html …

groovy,geb(selenium),spockによる自動化テスト その4

Geb API form, input, checkbox, radioなどのHTMLElementの操作する script4.html <form id="form1"> <div class="input1"> <input name="username1" type="text" placeholder="input your name"> <input name="password1" type="text" placeholder="input your password"> </div> <div class="input2"> </div></form>

groovy,geb(selenium),spockによる自動化テスト その3

Geb Navigator API gebを使えば、jqueryのselectorに似ている書き方で要素page要素を取得することができる。 script3.html <div>div1 text</div> <div>div2 text</div> <div class="search1"> <form onsubmit="return bridge();"> <input type="text" placeholder="input keyword" class="input" id="keyword" name="keyword"> <br> </form></div>

groovy,geb(selenium),spockによる自動化テスト その2

eclipseでGroovy ScriptでGebを利用する eclipse4.6 http://mergedoc.osdn.jp/ groovy eclipse https://github.com/groovy/groovy-eclipse/wiki buildship Gradle integration 2.0 gradleプロジェクト生成 build.gradleに依存関係追加 dependencies { // for…

groovy,geb(selenium),spockによる自動化テスト その1

環境 jdk,mvn,groovy,geb,webdriver groovy http://groovy-lang.org/download.html maven http://maven.apache.org/download.cgi webdriverダウンロード https://github.com/mozilla/geckodriver/releases 環境変数設定 PATH、JAVA_HOME、M2_HOME バージョン…

Get Properties from File.

package org.lee.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.Iterator; import java.util.Properties; public class PropertyU…

junit.framework.TestSuiteを使って、AllTest.javaを実装する。

・AllTest.java package org.lee.samle; import junit.framework.JUnit4TestAdapter; import junit.framework.Test; import junit.framework.TestSuite; public class AllTest { public static Test suite() { TestSuite suite = new TestSuite(); // TestCa…

Hibernate - 関連マッピング - @OneToMany

@OneToManyのサンプル 一人(1)が複数(N)のアドレスを持つ。 <hibernate-configuration> <session-factory> </session-factory></hibernate-configuration>

Hibernate - 関連マッピング - @ManyToOne

@ManyToOneのサンプル 複数の人(N)が同じ(1)のアドレスを持つ。 <hibernate-configuration> <session-factory> </session-factory></hibernate-configuration>

Hibernate - 関連マッピング - 単向

エンティティの単向関係 : 必ずAと通してBをアクセスする。 分類 単向1 ⇒ 1 : @OneToOne cascade fetch mappedBy orphanRemoval optional targetEntity 単向N ⇒ 1 : @ManyToOne cascade fetch optional targetEntity 単向1 ⇒ N : @OneToMany cascade fetch m…

Hibernate - Map属性マッピング

Mapを持つ永続化クラスの保存サンプル。 キーのAnnotaion @ElementCollection @ColletionTable @Column @MapKeyColumn 1. hibernate.xml

Hibernate - Set属性マッピング

Setを持つ永続化クラスの保存サンプル。 キーのAnnotaion @ElementCollection @ColletionTable @Column @OrderColumn ※ Listとは異なるのは、Setは順序がなく重複を許さないため、@OrderColumnは不要である! ※ SetのIFのみ使え、実装は使えない。 1. hibe…

Hibernate - List属性マッピング

Listを持つ永続化クラスの保存サンプル。 キーのAnnotaion @ElementCollection @ColletionTable @Column @OrderColumn 1. hibernate.xml

Hibernate - 永続化オブジェクト

参考:第10章 オブジェクトを扱う 永続化クラスの要件 パラメータなしのコンストラクター ID属性 setter,getter 非finalクラス equals(), hashCode() 永続化オブジェクトの状態 Transient : newした状態 Persistent : sessionスコープにある Detached : Pers…

Hibernate - 設定ファイル概要

Hibernateの永久化クラスの操作はSessionFactoryを離れない。 SessionFactoryはConfigurationオブジェクトから生成され、逆にConfigurationの唯一の機能はSessionFactoryに生成であり、生成後は破棄される。 Configurationの三つの生成方法 hibernate.proper…

Hibernate - 試してみようサンプル

設定ファイル : hibernate.cfg.xml <hibernate-configuration> <session-factory> </session-factory></hibernate-configuration>

Spring4 - AOP

SpringのAOP。 Annotation (XML定義も可能ね) @AspectJ @Before @After @AfterReturing @AfterThrowing @Aroud @Pointcut 必要なjar aopalliance.jar aspectjrt.jar aspectjweaver.jar コード

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…