Spring Stereo type

JAVA/Java_DataBase 2013.12.19 17:23

@Component

스프링 빈 객체가 됨.

@Controller

스프링 Controller역활을 함

@Repository

저장소 역활을 함(Dao)

자동 예외변환을 처리해줌

@Service

비즈니스로직을 구현한 클래스에 붙임


@Repository를 제외한 다른 스테레오 타입의 경우 현재 

명칭만 지정되어 있을 뿐임. 추후 네이명 적용 예정


저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

Spring Stereo type  (0) 2013.12.19
mysql 정책 변경  (0) 2013.12.11
AOP?  (0) 2013.11.07
빈의 라이프 사이클  (0) 2013.11.05
빈의 객체 범위  (0) 2013.10.23
객체간의 의존관계 설정.  (0) 2013.10.21

mysql 정책 변경

JAVA/Java_DataBase 2013.12.11 11:01

https://kldp.org/node/72564


해당 블로그가면 확인가능

저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

Spring Stereo type  (0) 2013.12.19
mysql 정책 변경  (0) 2013.12.11
AOP?  (0) 2013.11.07
빈의 라이프 사이클  (0) 2013.11.05
빈의 객체 범위  (0) 2013.10.23
객체간의 의존관계 설정.  (0) 2013.10.21

Develop - Create a Project with Eclipse

JAVA/Android_Tip 2013.11.12 15:30

Develop 시작.



먼저 안드로이드 이클립스 환경에서 프로젝트를 만들때이다.

설치야 뭐 다들 검색하면 미친듯이 많으니 알아서 하리라 생각한다.


Application Name : 말 그대로 그냥 이 어플리케이션 이름이다.

Project Name : 안드로이드 프로젝트 이름

Package Name : 안드로이드 패키지 이름이다.


*별다른 설정이 없을 경우 첫번째 어플리케이션 이름 정한대로 그대로 따라가진다.

*그리고 패키지 명에 경우 특정한 방식으로 해주길 바란다. 마켓에 올릴때는 저 패키지 네임으로 인식하여 올라가기 때문에 같을 경우 애써 만들어도 마켓에 올라가지는 않는다. 그리고 com.example머 이런식이면 안올라간다는것!



 Minimum Required SDK : 크게 중요한건 아니고 당신이 만드는 안드로이드 앱을 얼마만큼 낮은 버전까지 지원을 하게 해줄것인가에 대한 내용이며 이것을 정해주면 마켓에 업로드 했을 경우 마켓에서 최대한 소스를 포팅해주는 방식으로 진행된다.

가량 위에 처럼 프로요 까지 지원해준다고 쳤을때 2.1버전 사용자가 마켓에서 당신이 만든 앱을 검색해봐야 죽어도 안나온다는 사실.


Target SDK : 말 그대로 당신이 만드는 앱이 타겟으로 삼는 안드로이드 버전이다.

Compile With : 안드로이드의 경우 java로 코딩되므로 자바 코딩시 어떠한 안드로이드 버전으로 코딩할 것인지 정하는 것임. 디폴트 값으로는 최근에 나온 SDK 버전 컴파일러로 지정된다.


Theme : 말 그대로 테마.

*테마 부분은 나중에 Design 부분을 하면서 같이할 예정.

저작자 표시 비영리 변경 금지
신고

'JAVA > Android_Tip' 카테고리의 다른 글

Develop - Create a Project with Eclipse  (0) 2013.11.12
Design- Devices and Displays  (0) 2013.11.12
Android activity 구동방식  (0) 2012.07.23
Date클래스 이용 현재시간 구하기.  (0) 2012.07.16
Bitmap Canvas 스킬  (0) 2012.07.11
이미지 월 페이퍼 지정방법  (0) 2012.07.06

Design- Devices and Displays

JAVA/Android_Tip 2013.11.12 15:18

Devices and Displays

안드로이드를 다시 공부해야될 일이 생겨서..
책사기는 그렇고 .. 디벨로퍼 사이트에도 잘 설명이 되어 있다고하니..
영어로 된걸 읽기로 했다..
하루하루 번갈아서 Design과 Develop를 번갈아서 공부를 해보자.


Android powers millions of phones, tablets, and other devices in a wide variety of screen sizes and form factors. By taking advantage of Android's flexible layout system, you can create apps that gracefully scale from large tablets to smaller phones.


여러 폰과 태플릿이 사이즈가 다 다르다 그런데 안드로이드는 유연하게 이것을 표현할 수 있다고한다. 그래서 느그들이 만드는 앱도 어느곳에서나 유사하게 표현이 가능하다고 한다.


Be flexible

Stretch and compress your layouts to accommodate various heights and width

늘이고 줄여서 다양한 높이과 넓이를 수용 가능하게 한다~


아 해석하려니까.. 맞는거 같기도한거 같고 아닌거 같기도해서..

걍 보다가 중요한것만 쓸련다.







DPI를 단계별로 구분하였다. 화면 해상도에 따른 구분인거 같으며 이것으로 멀티 스크린에 대한 서비스를 할 수있고 유연하게 대처할 수 있다고 표현하는듯하다.


예전에는 weight로 LinearLayout을 구조를 이리저리 나누어서 표현을 했었는데 

DPI를 통해서 여러 화면 사이즈에 서비스를 할 수 있게 만드는거 같다.

쉽게 표현하면 레이아웃을 만들어 놓고 DPI 조정을 통해 만들수있는 것 말이다.



저작자 표시 비영리 변경 금지
신고

'JAVA > Android_Tip' 카테고리의 다른 글

Develop - Create a Project with Eclipse  (0) 2013.11.12
Design- Devices and Displays  (0) 2013.11.12
Android activity 구동방식  (0) 2012.07.23
Date클래스 이용 현재시간 구하기.  (0) 2012.07.16
Bitmap Canvas 스킬  (0) 2012.07.11
이미지 월 페이퍼 지정방법  (0) 2012.07.06

AOP?

JAVA/Java_DataBase 2013.11.07 23:04

http://isstory83.tistory.com/90


AOP관련 설명 사이트.


이건 어떻게 가볍게 설명이 안됨..

잘쓰신분꺼를 봐야될듯

저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

Spring Stereo type  (0) 2013.12.19
mysql 정책 변경  (0) 2013.12.11
AOP?  (0) 2013.11.07
빈의 라이프 사이클  (0) 2013.11.05
빈의 객체 범위  (0) 2013.10.23
객체간의 의존관계 설정.  (0) 2013.10.21

빈의 라이프 사이클

JAVA/Java_DataBase 2013.11.05 01:05

*구글 이미지 검색 후 붙임

안나올시 

http://www.javajigi.net/download/attachments/3664/bean-lifecycle.jpg


빈의 라이프 사이클의 경우 내가 써봐야.. 뭐.. 

그림파일로 만들어준 고마운 분들이 많으므로 그것으로 대체!


BeanNameAware 인터페이스

빈 객체가 자신의 이름을 알아야 하는 경우에 사용하며 

빈 클래스가 BeanNameAware를 구현한 경우 컨테이너는 setBeanName()매서드를 호출하여 빈객체의 이름을 전달 한다. 

setBeanName(String arg) arg의 경우 객체가 생성될 때의 해당 객체(빈)의 id또는 Name의 값을 전달받는다.


ApplicationContextAware 인터페이스

빈 객체가 필요한 객체를 스프링 컨테이너(BeanFactory나 ApplicationContext)로부터 직접 사용해야할 경우



BeanLifeCycle.zip



여기에 소스 올리는게 더 힘들거 같아서 그냥.. 


예시 프로그램 만들어서 올렸다.


당근... 나도 공부하는 입장이라.. 누누이 말하지만 


다른 잘하시는 분 블로그를 미친듯이 참조했으니 어디서 빼꼈느니 어쩌구 저쩌구 말은 하지 말길바람.



*추가

InitializingBean 인터페이스 

spring지원 초기화 메서드 , 객체 생성 -> 프로퍼티 초기화 -> 컨테이너 관련 설정 =>호출 


DisposableBean 인터페이스

spring 지원 소멸 메소드 , 빈 객체를 컨테이너에서 제거하기 전에 호출 하여 빈객체가 자원을 반납하게 함


오버라이드 메소드이니 implements에 추가하면 이클립스의 경우 클래스 이름에 빨간불 들어오면서 추가할 수 있게 해준다. 




저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

mysql 정책 변경  (0) 2013.12.11
AOP?  (0) 2013.11.07
빈의 라이프 사이클  (0) 2013.11.05
빈의 객체 범위  (0) 2013.10.23
객체간의 의존관계 설정.  (0) 2013.10.21
Spring API  (0) 2013.10.21

빈의 객체 범위

JAVA/Java_DataBase 2013.10.23 23:27

지난번에 bean 사용법과 더불어 여러기능에 대해서 

한번 써본적이 있는거 같다. 


request에도 여러 설정이 있고 bean에도 여러설정이 있는데

scope라고 해서 빈의 속성을 결정해주는게 있다.

<bean id="jdbcDao" class="springtest.jdbcDao" scope="??"></bean>



범위 

 설명

 singleton

 스프링 컨테이너에 의해 한개의 빈 객체만 생성

 prototype

 빈을 사용할 때마다 객체를 생성 

 request

 HTTP 요청마다 빈 객체를 생성(WebApplicationContext에서만 적용) 

 session

 HTTP 세션마다 빈 객체를 생성(WebApplicationContext에서만 적용) 

 global-session

글로벌 HTTP 세션에 대해 빈 객체를 생성. 포틀릿을 지원하는 컨텍스트에 대해서만 적용가능 



*나도 퍼온거라 .. 마지막 부분꺼만 대체 무슨 말인지를 모르겠다;;


singleton 이란거는 디자인 패턴이나 이런곳에서 뒤져보면 많은 설명이 있지만 설명하자면


TYPE A                        TYPE B

String A = "B";               String A = "B";

String B = "B";               String B = new String("B");


타입A와 타입B의 차이라고 할 수 있는데


TYPE A                                     TYPE B

A -------------"B"                    A -------------- "B"

B -----------┘                        B ---------------"B"


여기서 싱글톤은 타입A와 같다고 생각하면 되겠다.

한번 생성이 되고 나면 계속해서 처음 객체를 생성한 것만을 리턴해준다.


prototype같은 경우는 타입B와 동일하다고 보면되고

request는 사용자가 어떤 행위를 하여서 서버에 요청이 들어갔을 경우에 생성이 된다.

session은 홈페이지에 접속한 사용자마다 세션이라는 것이 생성이되는데 그 세션마다 어떠한 빈을 생성하게 한다했을 경우에 설정하는 거 같고..


전체적으로 좀 부족한 설명이긴 한데 나도 배우는 입장이라 이해해주기를 바란다~

싱글톤 패턴의 경우에는 주의사항이 있다. 객체를 한번만 생성하기 때문에 매우 편리하지 않을까 하는 생각도 있는데 쉽게 풀어 설명하면 전역변수라고 생각하면 되겠다. 여기저기서 참조해서 사용할 수 있는

리딩이라던지 DBConnection을 리턴해준다던지의 용도로 사용하면 적절하지만 긴 시간동안 처리되는 작업 또는 공유적으로 처리되는 변수값들 또는 작업들을 싱글톤으로 지정했을 경우에는 


-상호 배제(mutual exclusion, Mutex, 뮤텍스)는 동시 프로그래밍에서 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘으로, 임계 구역(critical section)으로 불리는 코드 영역에 의해 구현된다.

공유 불가능한 자원의 예로는 동시에 실행되고 있는 프로그램간의 통신에 사용되는 비트 단위의 깃발, 계수기,  등이다. 문제는 스레드가 언제라도 정지되거나 시작될 수 있다는 것이다.

예) 프로그램의 일부분이 여러 단계를 거치면서 데이터를 읽고 쓰고 있다고 하자. 그런데 예상치 못한 사건 등에 의해 다른 스레드가 동작하기 시작했다. 첫 번째의 스레드가 쓰고 있는 영역에서, 이 두 번째의 스레드가 또 다른 작업을 시작한다면, 해당 영역의 값은 부적절하며 예상할 수 없는 상태에 놓이게 된다. 게다가 두 번째의 스레드가 값을 덮어 써버리기라도 한다면, 복구 불가능한 상태로 되고 만다. 그러므로 공유 데이터를 접근하는 프로그램 내부의 이른바 임계 구역이라는 부분은 홀로 수행되도록 보호되어야 하며, 다른 스레드가 동일한 부분의 프로그램을 수행해서 동일한 공유 데이터를 접근하는 것을 막아야 한다.

단일 프로세서 시스템에서, 상호 배제를 구현하는 가장 단순한 방법은 인터럽트를 억제해서 공유 데이터가 손상되는 것을 막는 것이다. 성능에 최소한의 영향을 주기 위해 인터럽트가 발생하지 않을 명령어 집합의 수는 가능한 최소로 유지시키는 것이 좋다.

상호배제를 처음으로 소프트웨어를 통해 해결한 사람은 네덜란드 수학자 데커(Dekker)이며 그 알고리즘을 데커의 알고리즘이라 한다.

상호배제는 교착상태의 4가지 필요조건 중 하나이다.

(출처 : 위키펌)


위와같이 상호배제의 문제가 발생할 것으로 추측된다. (직접 겪어본건 아니라서;;;)


저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

AOP?  (0) 2013.11.07
빈의 라이프 사이클  (0) 2013.11.05
빈의 객체 범위  (0) 2013.10.23
객체간의 의존관계 설정.  (0) 2013.10.21
Spring API  (0) 2013.10.21
빈생성 및 사용  (0) 2013.10.21

객체간의 의존관계 설정.

JAVA/Java_DataBase 2013.10.21 22:56

public class Excutor {


public static void main(String[] args) {

// TODO Auto-generated method stub

ApplicationContext context = new FileSystemXmlApplicationContext("src/springtest/xmlPack/testxml.xml");

jdbcService test = (jdbcService)context.getBean("service");

test.serviceTest();

}

}


public class jdbcDao {

public jdbcDao(){}

public int insert(){

System.out.println("insert작업");

return 0;

}

public int delete(){

System.out.println("delete작업");

return 0;

}

}



public class jdbcService {

private jdbcDao jdbc;

public jdbcService (){

}

public jdbcService(jdbcDao jdbc){

this.jdbc = jdbc;

}

public void serviceTest(){

jdbc.insert();

jdbc.delete();

}

}


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="testDao" class="springtest.testDao">

<constructor-arg value="testEEEE"></constructor-arg>

</bean>

<bean id="jdbcDao" class="springtest.jdbcDao">

</bean>

<bean id="service" class="springtest.service.jdbcService">

<constructor-arg ref="jdbcDao"></constructor-arg>

</bean>

</beans>



어려워 보일수도 있는데 xml설정을 보면 대충 답을 알수가 있다. 
jdbcDao라는 빈을 선언하고 id="service"를 보면 jdbcService클래스에 생성자 인수로 jdbcDao의 객체를 초기화로 집어넣는 것을 볼 수 있다. 이또한 constructor-arg를 아무것도 하지 않으면 기본 생성자로 생성이 되게 된다.

위와 같은 설정으로 jdbcDao와 jdbcService는 의존관계를 가지는 설정이 되게 된다.
만약 객체가 아니라 값일경우에는 constructor-arg ref가 아니라 value를 사용하면 된다.

또는 property로 설정이 가능한데
setXXX식의 매소드가 추가되어서 처리가 가능하다

public class jdbcService {

private jdbcDao jdbc;

public setjdbcDao(jdbcDao jdbc){

this.jdbc = jdbc;

}

public void serviceTest(){

jdbc.insert();

jdbc.delete();

}

}

<property name="jdbcDao" ref="jdbcDao"></property>

이런식으로 처리가 가능해진다.

그리고 한번만 그 객체를 쓴다고 가정하였을 경우에는

위 xml을

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


<bean id="jdbcDao" class="springtest.jdbcDao">

</bean>

<bean id="service" class="springtest.service.jdbcService">

<property name="jdbcDao">

<bean id="jdbcDao" class="springtest.jdbcDao"></bean>

</property>

</bean>

</beans>

단점은 맨위에 있는 jdbcDao Bean과 다르게 여러번 사용이 불가능하며 임의로 다른 곳에서 긁어다가 쓸수가 없다는것이다 단지 지금위의 xml에 정의된대로 service라는 것에만 가능하다는 것이다.




저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

빈의 라이프 사이클  (0) 2013.11.05
빈의 객체 범위  (0) 2013.10.23
객체간의 의존관계 설정.  (0) 2013.10.21
Spring API  (0) 2013.10.21
빈생성 및 사용  (0) 2013.10.21
DI 의존성 주입.  (0) 2013.10.15

Spring API

JAVA/Java_DataBase 2013.10.21 22:24

http://docs.spring.io/spring/docs/3.1.4.RELEASE/javadoc-api/


저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

빈의 객체 범위  (0) 2013.10.23
객체간의 의존관계 설정.  (0) 2013.10.21
Spring API  (0) 2013.10.21
빈생성 및 사용  (0) 2013.10.21
DI 의존성 주입.  (0) 2013.10.15
IS-A와 HAS-A  (0) 2013.10.11

빈생성 및 사용

JAVA/Java_DataBase 2013.10.21 22:18

Excutor.java 

public class Excutor {


public static void main(String[] args) {

// TODO Auto-generated method stub

ApplicationContext context = new FileSystemXmlApplicationContext("src/springtest/xmlPack/testxml.xml");

testDao test = (testDao)context.getBean("testDao");

test.printing();

}


}


testDao.java

public class testDao {

public String msg;

public testDao(){};

public testDao(String msg)

{

this.msg = msg;

}

public void printing()

{

System.out.println("EEEEE" + msg);

}

}



testXml.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="testDao" class="springtest.testDao">

<constructor-arg value="testEEEE"></constructor-arg>

</bean>


</beans>




스프링은 bean으로 관리한다 그래서 xml에 bean의 이름을 정해주고 getBean("beanID이름")을 넣어줘서 불러준다. testXml.xml을 보면 testDao라고 있는데 저기에 <constructor-arg value=""></constructor-arg>가 없을 경우 객체를 생성시 testDao의 기본 생성자인 testDao(){};에 의해 생성되게 된다.


저작자 표시 비영리 변경 금지
신고

'JAVA > Java_DataBase' 카테고리의 다른 글

객체간의 의존관계 설정.  (0) 2013.10.21
Spring API  (0) 2013.10.21
빈생성 및 사용  (0) 2013.10.21
DI 의존성 주입.  (0) 2013.10.15
IS-A와 HAS-A  (0) 2013.10.11
SPRING TOOL SUITE 설치하기  (0) 2013.10.01


티스토리 툴바