Spring 예제

Java/Spring 2011/06/08 12:29
tags : Spring
Trackback 0 : Comment 0

(Oracle) CONNECT BY 절 사용하기

Etc... 2011/04/18 18:03
테이블 구조
create table test(
	id number,
	pid number,
	name varchar2(255)
)

위에서 아래로 훑기(id가 1인것부터 시작해서 그 아래로 스캔)
SELECT lpad(' ',(LEVEL-1)*3,' ') ||name, LEVEL, id
FROM         test
CONNECT BY PRIOR id = pid
START WITH id = 1

아래서 위로 훑기(id가 6인것부터 시작해서 위로 스캔)
SELECT lpad(' ',(LEVEL-1)*3,' ') ||name, LEVEL, id
FROM         test
CONNECT BY PRIOR pid = id
START WITH id = 6
Trackback 0 : Comment 0

Template method pattern(템플릿 메소드 패턴)

Java/General 2011/04/12 11:43
객체들의 행위가 대부분 동일하고 일부 메소드만 구현방법이 다를 경우, 그 메소드만을 추상화해서 부모 객체를 만든후, 각 객체들은 부모 객체를 상속받아서 추상메소드만 구체화해서 사용한다.

1) BasketBallPlayer.java : 농구선수를 정의한 추상 객체, 공격/수비에 대한 행위는 동일하고 슈팅방법만 다를 경우를 생각해 봄
abstract public class BasketBallPlayer {

	protected String name;
	
	public BasketBallPlayer(String name) {
		this.name = name;
	}
	
	public void attack() {
		System.out.println(name+"이(가) 공격을 합니다.");
	}
	
	public void defense() {
		System.out.println(name+"이(가) 수비를 합니다.");
	}
	
	abstract public void shoot();
	
}



2) Jordan.java : 마이클 조던 객체, 조던은 크러치 레이업슛을 한다.
public class Jordan extends BasketBallPlayer{

	public Jordan(String name) {
		super(name);
	}

	@Override
	public void shoot() {
		System.out.println(name+"이(가) 3단 크러치 레이업슛을 합니다.");
	}
}

3) Bryant.java : 코비 브라이언트 객체, 브라이언트는 덩크슛을 한다.
public class Bryant extends BasketBallPlayer{

	public Bryant(String name) {
		super(name);
	}

	@Override
	public void shoot() {
		System.out.println(name+"이(가) 리버스 덩크슛을 날립니다.");
	}

}

4) 사용예제
public class Court {

	public static void main(String args[]) {

		BasketBallPlayer jordan = new Jordan("조던");
		BasketBallPlayer bryant = new Bryant("코비");
		
		jordan.attack();
		bryant.defense();
		jordan.shoot();
		
		System.out.println("------------- 공수교대 -------------");
		
		bryant.attack();
		jordan.defense();
		bryant.shoot();
		
	}
	
}

5) 실행결과
조던이(가) 공격을 합니다.
코비이(가) 수비를 합니다.
조던이(가) 3단 크러치 레이업슛을 합니다.
------------- 공수교대 -------------
코비이(가) 공격을 합니다.
조던이(가) 수비를 합니다.
코비이(가) 리버스 덩크슛을 날립니다.
 

Trackback 0 : Comment 0

Strategy pattern(전략패턴) 이해

Java/General 2011/04/12 11:32
객체의 행위(메소드) 목적은 동일하지만, 그 내용(전략,알고리즘)이 여러가지가 존재할 경우 사용한다.
즉, 객체에 다른 전략의 메소드를 계속 추가해서 코드의 변경을 가하는 것보다 그 전략들을 별도의 객체로 빼서 구현을 하기때문에 기존 코드의 수정없이 전략을 추가하는것이 가능하다.

1) IShooting.java : 슈팅전략에 대한 인터페이스

public interface IShooting {

	void shoot();

}


2) IShooting.java를 구현한 여러가지 슛 전략들, 다른 슈팅전략이 추가되면 아래와 같이 IShooting을 구현해서 객체를 구현하면 된다.
// 2점슛
public class Point2Shooting implements IShooting{

	@Override
	public void shoot() {
		System.out.println("2점슛!!");
	}

}

// 3점슛
public class Point3Shooting implements IShooting {

	@Override
	public void shoot() {
		System.out.println("3점슛~~");
	}

}

//덩크슛
public class DunkShooting implements IShooting {

	@Override
	public void shoot() {
		System.out.println("덩크슛!!");		
	}

}

3) BasketBallPlayer.java : 농구선수 객체 shoot이란 행위의 목적은 같으나 shoot의 형태(전략) 여러가지가 존재하므로, 그 전략들(IShooting.java를 구현한 객체들)을 shoot메소드의 인자로 받는다.
public class BasketBallPlayer {
	
	public BasketBallPlayer() { }
	
	public void shoot(IShooting shooting) {
		shooting.shoot();
	}

}

4) 사용예제
public class Court {

	public static void main(String args[]) {
		BasketBallPlayer player = new BasketBallPlayer();
		player.shoot(new DunkShooting());
		player.shoot(new Point3Shooting());
		player.shoot(new Point2Shooting());
	}

}
 

5) 실행결과
덩크슛!!
3점슛~~
2점슛!!
 


Trackback 0 : Comment 0

(Spring)XStream 사용하여 Marshalling/Unmarshalling 하기

Java/Spring 2011/01/27 11:08
1) Target Bean
package test;

public class Data {

	private String title;

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

}

2) applicationContext.xml

	


	
	


3) Test case
 
    @Resource(name = "xstreamMarshaller")
	private Unmarshaller unmarshaller;

	@Resource(name = "xstreamMarshaller")
	private Marshaller marshaller;
	
	private String title = "TITLE"; 

	@Test
	public void marshallingTest() throws Exception {
 // 뭐.. 테스트 코드는 없습니다. 그냥 do.xml이라는 파일 떨구는 테스트 케이스 ㅋ
		FileOutputStream os = new FileOutputStream("E:\\do.xml");
		Data data = new Data();
		data.setTitle(title);
		StreamResult result = new StreamResult(os);
		marshaller.marshal(data, result);
		os.close();
	}

	@Test
	public void unmarshallingTest() throws Exception {
		FileInputStream is = new FileInputStream("E:\\do.xml");
		Data data = (Data) unmarshaller.unmarshal(new StreamSource(is));
		assertThat(data.getTitle(), is(title));
		is.close();
	}
 
Trackback 0 : Comment 0

AspectJ 사용하기 위해 필요한 java 라이브러리

Java/General 2011/01/21 19:27

			org.aspectj
			aspectjrt
			1.6.6


			org.aspectj
			aspectjweaver
			1.6.6

Trackback 0 : Comment 0

(Maven) Request to merge when 'filtering' is not identical 발생시

Java/Tools 2011/01/21 17:39
mvn eclipse:eclipse 실행시 제목과 같은 에러 발생시 아래 참고해서 해결

여기 참고 : http://forums.atlassian.com/thread.jspa?threadID=34952&tstart=30

1. Add the following line within the <settings> element of your ~/.m2/settings.xml file"
true
2. Add the file ~/.m2/plugin-registry.xml with the following contents"




org.apache.maven.plugins
maven-eclipse-plugin
2.6

2.7




Trackback 0 : Comment 0

항주, 송성민속촌 도끼묘기

可以可以 China! 2010/07/23 16:56
항주에 있는 송성에도 다녀왔습니다.
송나라 시대를 재현한 곳인데요, 한국에 있는 민속촌 생각하시면 되겠습니다.
입장 하자마자 오른쪽에 사람이 모여있길래 봤더니, 무예를 하시는 분들이 여러가지 묘기를 보여주더라구요.
뭐 TV에서 많이 본거겠지 했는데, 직접 아슬아슬한 묘기를 보니 너무 재미있고, 감탄이 절로 나오네요.
그중에 하나인 도끼 묘기입니다.
재물(?)로 나온 일반인의 모습이 너무 웃겼습니다. 그 도끼 묘기하시는 분 왈, 
'죽을 확률 60%!!' ㅋㅋㅋ

Trackback 0 : Comment 1

괜찮은 호텔, Shanghai Asset Hotel

可以可以 China! 2010/07/23 13:29
이번 여름에 상해 여행을 다녀왔는데요,
가장 신경 쓰였던 숙소를 선정하면서, 직접 숙박을 해본 결과 매우 만족 스러워서 리뷰를 남깁니다.

우선 해외 호텔 검색과 예약은 예전부터 이용했던 RatesToGo 에서 했습니다.
이 사이트의 경우 다국어(한국어 포함)로 서비스 하고 있는 유명한 사이트구요, 믿을만 한 곳입니다.^^

상해 엑스포 기간이라, 2년전에 상해 갔을때 보다 숙박 요금이 많이 올랐구요, 특히 환율이 ¥1 = 200원 가까이 
오르는 바람에 어쩔 수 없이 좀 저렴한 호텔을 찾을 수 밖에 없었습니다.

결국 찾아낸 호텔이 Asset Hotel 입니다.


요금,위치,시설 등은 위 호텔 사이트에 가시면 자세히 나와있구요, 제가 겪은것만 요약해서 올려드리겠습니다.

1) 요금
젤 싼 방이 ¥300(할인 받은 가격)대 부터 있구요, 저는 젤 싼방에서 3박을 했습니다.
물론 조식이 다 포함된 가격입니다.






2) 시설
젤 싼방인 Econommical Room에 묶었는데요, 방이 아담한게 포근해 보였습니다.^^
물론 호텔 규모가 작기때문에 방 또한 크진 않지만, 있을건 다있습니다. (더블베드,TV,전화,인터넷,냉장고,
옷장,테이블,의자,에어컨,샤워부스 등)
많이 신경 쓰이는 부분이 청결도인데요, 상해라는 도시 자체가 워낙 현대화된 도시라, 등록된 숙소의 청결도는 믿으셔도 됩니다. 매우 깨끗합니다.

3) 조식
조식이 포함되어 있는데, 고급호텔의 조식을 상상하시면 안됩니다. 솔직히 조식은 기대 이하입니다. 다만, 제가 원래 아침을 거의 안먹기 때문에, 빵이나 음료, 과일 등으로 배를 채우기에는 충분합니다.^^




4) 위치,주변, 교통 
상해 중심부(인민광장 등)에서 약간 떨어져 있는 상해 스타디움(상해체육장) 근처에 있긴하지만, 택시타고 10~15분 거리입니다.
호텔을 중심으로 걸어서 5~10분 거리에 지하철(4호선-상해체육장역,7호선-동안로역) 역이 있어서 접근성이 매우 좋으며, 주변에는 상해스타디움과 상해에서 제일 큰 매장인 IKEA 등이 있구요, 호텔 나가자 마자 편의점이 4-5개가 있습니다. 특히 IKEA는 시간 내서라도 꼭 가시길 바랍니다. 
대체적으로 주변이 발전된 곳이라 밤에 걸어다녀도 안심하셔도 되는,, 그냥 서울을 생각하심 될듯합니다.
아! 바로 길건너에 큰 빵집이랑 커피숍이 있습니다.

5) 총평
저렴한 가격에, 적당한 위치에, 좋은 시설의 숙소를 찾으신다면 이 호텔을 강력 추천하구요,
정말 정감이 가는 호텔이라, 나중에 기회가 된다면 또 선택을 하고 싶을 정도입니다.

즐거운 여행되시길!! ^^


Trackback 0 : Comment 0

초등 선생님들을 위한 사이트

Etc... 2010/06/21 15:27
키즈짱 스쿨 : http://school.kids.daum.net

학년별,과목별,단원별 학습 자료가 많이 있습니다.


Trackback 0 : Comment 0
◀ PREV : [1] : [2] : [3] : [4] : [5] : ... [7] : NEXT ▶