반응형
 애트리뷰트 용도 
diskExpiryThreadIntervalSeconds   얼마나 자주 디스크 만료 스레드를 실행시킬지 지정. 디스크에 저장된 캐시에서 만료될 항목을 제거할 주기(기본값 : 120초)
diskPersistent  VM 종료시 VM 재시작에 대비해 디스크를 이용해 캐시 내용을 저장할지 여부(기본값 : false) 
eternal 캐시 항목의 영구성을 지정. 영구설정시 만료되지 않음(필수) 
maxElementsInMemory  메모리에 캐시될 수 있는 항목의 최대 개수(필수)
memoryStoreEvictionPolicy   maxElementsInMemory에 도달했을 때 제거하는 방법지정. 기본으로는 '가장 사용된지 오래된(LRU : theLeast Recently Used)' 사용, 이외에 '선입선출(FIFO : First In/First-Out)'이나 '가장 사용되지 않은(LFU : Less Frequently Used)'
name 캐시의 이름 (필수) 
overflowToDisk  maxElementsInMemory 한도에 도달했을때 오버플로우된 항목을 디스크로 넘길지 여부(필수) 
timeToIdleSeconds  캐시항목이 사용된 지 얼마나 지났을때 만료시킬지 지정(기본값 : 0) 
timeToLiveSeconds   캐시된 후 캐시에서 만료되기 전까지 지낼 수 있는 최대 시간. 0은 영구히 캐시에 남아있을수 있음(기본값 : 0)

캐시 설정시 defaultCache는 반드시 있어야 한다. defaultCache는 캐시 사용시 다른 적절한 캐시를 찾을수 없을 때 사용된다. 

 
	





728x90
반응형
반응형

ORDER BY COLUMNAME NULLS LAST   -> NULL 값을 마지막으로
ORDER BY COLUMNAME NULLS FIRST  -> NULL 값을 처음으로
728x90
반응형
반응형
driverClassName : JDBC 드라이버 패키지명을 포함한 완전한 클래스명
url : 데이터 베이스에 필요한 JDBC URL
initialSize : 풀이 시작될 때 생성할 커넥션 수
maxActive : 풀에서 동시에 제공하는 최대 커넥션 수
maxIdl : 동시에 휴먼 상태로 유지도리 수 있는 최대 커넥션 수

  1. <bean id="defaultHubDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  2.         <property name="driverClassName" value="org.hsqldb.jdbcDriver"></property>
  3.         <property name="url" value="jdbc:hsqldb:hsql://localhost/roadrantz/roadrantz"></property>
  4.         <property name="username" value="username"></property>
  5.         <property name="password" value="pw"></property>
  6.         <property name="maxActive" value="80"></property>
  7.         <property name="maxIdle" value="50"></property>
  8. </bean>


728x90
반응형
반응형
[abc] : a, b or c
괄호안에 있는 문자가 존재하면 true(연결된것은 안됨)
  1. public class Test {
  2.     public static void main(String[] args) {
  3.             Pattern pattern      = Pattern.compile("[ABCD]");
  4.         Matcher matcher = pattern.matcher("A");
  5.         System.out.println(matcher.matches());
  6.     }
  7. }
결과 : true 
if문 쓰는것보다 훨씬 유용한것 같다.  


728x90
반응형
반응형


Preferences 설정 한방이면 끝!!!!
728x90
반응형
반응형
  1. @Aspect   // aspect 선언
  2. public class Audience {
  3.     @Pointcut("execution(* *.perform(..))") // pointcut 정의
  4.     public void performance(){}
  5.    
  6.     @Before("performance()")
  7.     public void takeSeats(){
  8.    
  9.     }
  10.    
  11.     @AfterReturning("performance()")
  12.     public void applaud(){
  13.        
  14.     }
  15.    
  16.     @AfterThrowing("performance()")
  17.     public void demandRefund(){
  18.        
  19.     }
  20. }
@AspectJ 기반의 빈을 애스펙트로 변환하는 방법을 알고 있는 오토프록시 빈 선언
AnnotationAwareAspectJAutoProxyCreator  -> 이름이 길다 -_-;
대신
<aop:aspectj-autoproxy /> 
이거 한방이면 끝.

대신 이걸 사용하기 위해서는
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
이거 추가해야함!! 


728x90
반응형
반응형
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" />

이렇게 선언해놓으면 ProxyFactoryBean을 따로 선언해줄 필요가 없다.

DefaultAdvisorAutoProxyCreator를 선언하면 스프링 컨테이너는 이빈을 BeanPostProcessor로 인식한다.
bean에 id가 없는건 이 빈을 참조해서 사용할 필요가 없기 때문이다.

(참고)----------
Application Context 내에 bean lifecycle

인스턴스화 -> property 할당 -> BeannameAware의 setBeanName() -> BeanFactoryAware의 setBeanFactory()
->ApplicationContextAware의 setApplicationContext()
-> BeanPostProcessor의 postProcessBeforeInitialization()
-> InitializingBean의 afterPropertiesSet() -> 커스텀 초기화 메서드 호출 
-> BeanPostProcessor의 postProcessAfterInitialization()...

위에서 말한 BeanPostProcessor로 인식한다는 말은 위에 적힌 lifeCycle에서 BeanPostPrecessor 로딩시 자동으로 bean을 생성한다는 말인것 같다. 

 
728x90
반응형
반응형
  1. <bean id="audienceAdvisor" class="org.springframework.aop.aspectj.AspectJExpressionPointcutAdvisor">
  2.     <prorperty name="advice" ref="audienceAdvice"></prorperty>
  3.     <prorperty name="expression" value="execution(* *.perform(..))"></prorperty>
  4. </bean>

excution(* *.perform(..))


excution  : method가 실행될때
*            : 모든 반환 값 타입에 대해
*.           : 모든 클래스의
perform   : perform() method
(..)         : 인자의 개수에 상관없이 


728x90
반응형
반응형
포인트컷은 어드바이스가 적용돼야할 메서드를 골라내는것

pointcut 정의
  1. <bean id="performancePointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut">
  2.     <prorperty name="pattern" value=".*perform">
  3. </prorperty></bean>
advice와 pointcut 결합
  1. <bean id="audienceAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
  2.     <prorperty name="advice" ref="audienceAdvice">
  3.     <prorperty name="pointcut" ref="performancePointcut">
  4. </prorperty></prorperty></bean>
하나의 빈 설정으로 pointcut과 advice 동시정의
  1. <bean id="audienceAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
  2.     <prorperty name="advice" ref="audienceAdvice">
  3.     <prorperty name="pointcut" ref=".*perform">
  4. </prorperty></prorperty></bean>


728x90
반응형

+ Recent posts