Doc: 문서 파일명 변경

main
Jooho Yoon 4 years ago
parent 7ce0cb7d9d
commit bd96ffbed8

@ -1,17 +0,0 @@
# JavaConfig 변환
## 1. XML -> Java Code 변환
### 1) Web.xml 변환
[Context의 계층 관계](./ContextHierarchy.md)
[WebApplicationInitial이란](./WebApplicationInitializer.md)
[WebApplicationInitial 변환](./WebApplicationInitializer_convert.md)
### 2) context-*.xml 변환
## 2. Properties 변환

@ -63,8 +63,6 @@ Servlet Container는 보안 관련된 기능을 지원한다. 따라서 서블
기존
1. 기존 방식
@ -76,14 +74,6 @@ Servlet Container는 보안 관련된 기능을 지원한다. 따라서 서블
2) 그 안에 tomcat이 내장 서버로 뜬다.
3) Servlet(ex, DispatcherServlet)을 내장 톰켓 안에다가 코드로 등록한다.
출처

@ -4,10 +4,13 @@
>1. 환경설정 역할을 하는 클래스에 `@Configuration`을 붙여준다.
>2. @Bean 을 붙여서 등록하고자 하는 Spring Bean을 정의한다.
> * 메소드 정의시 @Bean 을 붙인다.
>
> * 메소드 정의시 @Bean 을 붙인다.
>
>3. XML Bean 설정 방법을 따른다.
> * 메소드의 Return 타입은 Bean의 Class Type 이다.
> * 메소드의 이름이 Bean의 이름(XML 설정 당시 id 속성)이다.
>
> * 메소드의 Return 타입은 Bean의 Class Type 이다.
> * 메소드의 이름이 Bean의 이름(XML 설정 당시 id 속성)이다.
>
>4. 특정 Bean을 Injection 받아서 Bean을 생성해야 할땐 특정 Bean을 생성하는 메소드를 직접 호출, 메소드의 파라미터, 또는 클래스레벨의 @Autowired로 특정 Bean을 Injection 받을 수 있다
@ -160,18 +163,13 @@ public DefaultExceptionHandleManager defaultExceptionHandleManager(AntPathMatche
위의 예제에서 `antPathMatcher``otherHandler`은 다른곳에서 등록된 Bean을 **메소드의 파라미터** 로 주입받고 있다. 이는 **@Autowired** 를 통해서 주입받는 형태로 바꿀 수도 있다.
```java
@Autowired
AntPathMatcher antPathMatcher;
...
@Bean
public DefaultExceptionHandleManager defaultExceptionHandleManager(ExceptionHandler egovHandler) {
DefaultExceptionHandleManager defaultExceptionHandleManager = new DefaultExceptionHandleManager();
defaultExceptionHandleManager.setReqExpMatcher(antPathMatcher);
defaultExceptionHandleManager.setPatterns(new String[] {"**service.impl.*"} );
defaultExceptionHandleManager.setHandlers(new ExceptionHandler[] {egovHandler});
return defaultExceptionHandleManager;
}
@AutowiredAntPathMatcher antPathMatcher;...
@Beanpublic DefaultExceptionHandleManager defaultExceptionHandleManager(ExceptionHandler egovHandler){
DefaultExceptionHandleManager defaultExceptionHandleManager = new DefaultExceptionHandleManager();
defaultExceptionHandleManager.setReqExpMatcher(antPathMatcher);
defaultExceptionHandleManager.setPatterns(new String[] {"**service.impl.*"} );
defaultExceptionHandleManager.setHandlers(new ExceptionHandler[] {egovHandler});
return defaultExceptionHandleManager;}
```
이는 Bean을 주입 받는 방법이 다양하므로 다양한 형태의 코드로 구현이 가능함을 기억해 두면 좋을 것이다.
@ -179,14 +177,12 @@ public DefaultExceptionHandleManager defaultExceptionHandleManager(ExceptionHand
앞선 `defaultExceptionHandleManager`가 메소드의 파라미터 형태로 `egovHandler` 을 주입 받았다면 `otherExceptionHandleManager`**Bean을 생성하는 메소드를 직접 호출**하여 `otherHandler`을 주입 받을 수 있는 것을 확인 할 수 있을 것이다.
```java
@Bean
public DefaultExceptionHandleManager otherExceptionHandleManager() {
DefaultExceptionHandleManager defaultExceptionHandleManager = new DefaultExceptionHandleManager();
defaultExceptionHandleManager.setReqExpMatcher(antPathMatcher);
defaultExceptionHandleManager.setPatterns(new String[] {"**service.impl.*"} );
defaultExceptionHandleManager.setHandlers(new ExceptionHandler[] {otherHandler()});
return defaultExceptionHandleManager;
}
@Beanpublic DefaultExceptionHandleManager otherExceptionHandleManager() {
DefaultExceptionHandleManager defaultExceptionHandleManager = new DefaultExceptionHandleManager();
defaultExceptionHandleManager.setReqExpMatcher(antPathMatcher);
defaultExceptionHandleManager.setPatterns(new String[] {"**service.impl.*"} );
defaultExceptionHandleManager.setHandlers(new ExceptionHandler[] {otherHandler()});
return defaultExceptionHandleManager;}
```
참조

@ -1,4 +1,4 @@
# Conext-aspect 변환
# conext-aspect 설정 변환
> AOP 관련 설정을 하는 곳이다.
>
@ -70,7 +70,7 @@ public DefaultExceptionHandleManager defaultExceptionHandleManager(ExceptionHand
템플릿 내에서 Exception 발생시 실제 처리를 위한 클래스 설정
<conext-aspect.xml>

@ -0,0 +1,132 @@
# context-common-convert 설정 변환
> 공통 설정 관련된 사항들
컴포넌트 자동 스캔 설정 변환방법
<context-common.xml>
```xml
<context:component-scan base-package="egovframework">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
```
<EgovConfigAppCommon.class>
```java
@ComponentScan(basePackages = "egovframework", includeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Service.class),
@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Repository.class)
}, excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Controller.class),
@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Configuration.class)
})
```
프로퍼티 파일 위치 등록
<context-common.xml>
```xml
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/egovframework/message/com/message-common</value>
<value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
<value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
</list>
</property>
<property name="cacheSeconds">
<value>60</value>
</property>
</bean>
```
<EgovConfigAppCommon.class>
```java
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource();
String classpath = System.getProperty("java.class.path");
reloadableResourceBundleMessageSource.setBasenames(
"classpath:/egovframework/message/com/message-common",
"classpath:/org/egovframe/rte/fdl/idgnr/messages/idgnr",
"classpath:/org/egovframe/rte/fdl/property/messages/properties");
reloadableResourceBundleMessageSource.setCacheSeconds(60);
return reloadableResourceBundleMessageSource;
}
```
Exception 발생시 후처리용 별도작업을 위해 실행환경의 DefaultTrace Handle Manager 를 활용하도록 설정
<context-common.xml>
```xml
<bean id="traceHandlerService" class="egovframework.rte.fdl.cmmn.trace.manager.DefaultTraceHandleManager">
<property name="reqExpMatcher">
<ref bean="antPathMater" />
</property>
<property name="patterns">
<list>
<value>*</value>
</list>
</property>
<property name="handlers">
<list>
<ref bean="defaultTraceHandler" />
</list>
</property>
</bean>
```
<EgovConfigAppCommon.class>
```java
@Bean
public DefaultTraceHandleManager traceHandlerService() {
DefaultTraceHandleManager defaultTraceHandleManager = new DefaultTraceHandleManager();
defaultTraceHandleManager.setReqExpMatcher(antPathMatcher());
defaultTraceHandleManager.setPatterns(new String[] {"*"});
defaultTraceHandleManager.setHandlers(new TraceHandler[] {defaultTraceHandler()});
return defaultTraceHandleManager;
}
```
multipart Resolver 설정
<context-common.xml>
```xml
<bean id="spring.RegularCommonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000" />
<property name="maxInMemorySize" value="100000000" />
</bean>
```
<EgovConfigAppCommon.class>
```java
@Bean
public CommonsMultipartResolver springRegularCommonsMultipartResolver() {
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
commonsMultipartResolver.setMaxUploadSize(100000000);
commonsMultipartResolver.setMaxInMemorySize(100000000);
return commonsMultipartResolver;
}
```

@ -0,0 +1,103 @@
# context-datasource.xml 설정 변환
> 데이터 소스관련 설정 사항들 다루고 있음
내장 DB 사용시
<context-datasource.xml>
```xml
<jdbc:embedded-database id="dataSource-hsql" type="HSQL">
<jdbc:script location= "classpath:/db/shtdb.sql"/>
</jdbc:embedded-database>
```
<EgovConfigAppDatasource.class>
```java
private DataSource dataSourceHSQL() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.HSQL)
.setScriptEncoding("UTF8")
.addScript("classpath:/db/shtdb.sql")
// .addScript("classpath:/otherpath/other.sql")
.build();
}
```
다른 DB 사용시
<context-datasource.xml>
```xml
<!-- mysql -->
<bean id="dataSource-mysql" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
<!-- Oracle -->
<bean id="dataSource-oracle" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
<!-- Altibase -->
<bean id="dataSource-altibase" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
<!-- Tibero -->
<bean id="dataSource-tibero" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
<!-- cubrid -->
<bean id="dataSource-cubrid" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
```
<EgovConfigAppDatasource.class>
```java
@PostConstruct
void init() {
dbType = env.getProperty("Globals.DbType");
//Exception 처리 필요
className = env.getProperty("Globals." + dbType + ".DriverClassName");
url = env.getProperty("Globals." + dbType + ".Url");
userName = env.getProperty("Globals." + dbType + ".UserName");
password = env.getProperty("Globals." + dbType + ".Password");
}
......
private DataSource basicDataSource() {
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName(className);
basicDataSource.setUrl(url);
basicDataSource.setUsername(userName);
basicDataSource.setPassword(password);
return basicDataSource;
}
```

@ -66,12 +66,6 @@ DispatcherServlet을 통해 Servlet WebApplicationContext를 생성하는데,
위의 두 context 모두 `param-name``contextConfigLocation` 이라는 것을 볼 수 있다.
이 부분이 Context 간 계층 관계를 연결해주는 부분이다.(?????????)
참조

@ -0,0 +1,75 @@
# context-idgen.xml 설정 변환
> Id Generation을 위한 설정이다.
Table별 채번을 위한 Id Generation을 위한 설정으로 한번에 생성될 ID의 blockSize , ID 관리 테이블, ID 사용 테이블, ID의 머릿글자, ID의 자리수, 자리 채움 문자를 설정 할 수 있다.
<context-idgen.xml>
```xml
<bean name="egovFileIdGnrService"
class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl"
destroy-method="destroy">
<property name="dataSource" ref="dataSource-${Globals.DbType}" />
<property name="strategy" ref="fileStrategy" />
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="FILE_ID"/>
</bean>
<bean name="fileStrategy"
class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
<property name="prefix" value="FILE_" />
<property name="cipers" value="15" />
<property name="fillChar" value="0" />
</bean>
```
<EgovConfigAppIdGen.class>
```java
@Bean(destroyMethod = "destroy")
public EgovTableIdGnrServiceImpl egovFileIdGnrService() {
EgovTableIdGnrServiceImpl egovTableIdGnrServiceImpl = new EgovTableIdGnrServiceImpl();
egovTableIdGnrServiceImpl.setDataSource(dataSource);
egovTableIdGnrServiceImpl.setStrategy(fileStrategy());
egovTableIdGnrServiceImpl.setBlockSize(10);
egovTableIdGnrServiceImpl.setTable("IDS");
egovTableIdGnrServiceImpl.setTableName("FILE_ID");
return egovTableIdGnrServiceImpl;
}
private EgovIdGnrStrategyImpl fileStrategy() {
EgovIdGnrStrategyImpl egovIdGnrStrategyImpl = new EgovIdGnrStrategyImpl();
egovIdGnrStrategyImpl.setPrefix("FILE_");
egovIdGnrStrategyImpl.setCipers(15);
egovIdGnrStrategyImpl.setFillChar('0');
return egovIdGnrStrategyImpl;
}
```
위의 형식이 반복되므로 이를 간단하게 builder 형태로 설정 할 수 있다.
<EgovConfigAppIdGen.class>
```java
@Bean(destroyMethod = "destroy")
public EgovTableIdGnrServiceImpl egovBBSMstrIdGnrService() {
return new EgovIdGnrBuilder().setDataSource(dataSource).setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl())
.setBlockSize(10)
.setTable("IDS")
.setTableName("BBS_ID")
.setPreFix("BBSMSTR_")
.setCipers(12)
.setFillChar('0')
.build();
}
```

@ -0,0 +1,70 @@
# context-mapper.xml 설정 변환
> mapper 설정 파일을 지정해주는 설정파일
mapper 설정 파일을 등록해 준다.
<context-mapper.xml>
```xml
<bean id="egov.lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />
<!-- Mybatis setup for Mybatis Database Layer -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:/egovframework/mapper/config/mapper-config.xml" />
<property name="mapperLocations">
<list>
<value>classpath:/egovframework/mapper/let/**/*_${Globals.DbType}.xml</value>
</list>
</property>
</bean>
<!-- Mybatis Session Template -->
<bean id="egov.sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="egov.sqlSession"/>
</bean>
<alias name="sqlSession" alias="egov.sqlSession" />
```
<EgovConfigAppMapper.class>
```java
@Bean
@Lazy
public DefaultLobHandler lobHandler() {
return new DefaultLobHandler();
}
@Bean(name = {"sqlSession", "egov.sqlSession"})
public SqlSessionFactoryBean sqlSession() {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setConfigLocation(
pathMatchingResourcePatternResolver
.getResource("classpath:/egovframework/mapper/config/mapper-config.xml"));
try {
sqlSessionFactoryBean.setMapperLocations(
pathMatchingResourcePatternResolver
.getResources("classpath:/egovframework/mapper/let/**/*_" + dbType + ".xml"));
} catch (IOException e) {
// TODO Exception 처리 필요
}
return sqlSessionFactoryBean;
}
@Bean
public SqlSessionTemplate egovSqlSessionTemplate(@Qualifier("sqlSession") SqlSessionFactory sqlSession) {
SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSession);
return sqlSessionTemplate;
}
```

@ -0,0 +1,42 @@
# context-properties.xml 설정 변환
> 프로퍼티 정보 설정
프로젝트 내에서 사용할 EgovPropertyService에 값을 등록 하는 예제이다.
<context-properties.xml>
```xml
<bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
<property name="properties">
<map>
<entry key="pageUnit" value="10"/>
<entry key="pageSize" value="10"/>
<entry key="posblAtchFileSize" value="5242880"/>
<entry key="Globals.fileStorePath" value="/user/file/sht/"/>
<entry key="Globals.addedOptions" value="false"/>
</map>
</property>
</bean>
```
<EgovConfigAppProperties.class>
```java
@Bean(destroyMethod = "destroy")
public EgovPropertyServiceImpl propertiesService() {
EgovPropertyServiceImpl egovPropertyServiceImpl = new EgovPropertyServiceImpl();
Map<String, String> properties = new HashMap<String, String>();
properties.put("pageUnit", "10");
properties.put("pageSize", "10");
properties.put("posblAtchFileSize", "5242880");
properties.put("Globals.fileStorePath", "/user/file/sht/");
properties.put("Globals.addedOptions", "false");
egovPropertyServiceImpl.setProperties(properties);
return egovPropertyServiceImpl;
}
```

@ -0,0 +1,78 @@
# context-transaction.xml 설정 변환
> Transanction 관련 설정
Transanction 설정을 관리하는 곳이다.
<context-transaction.xml>
```xml
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="requiredTx" expression="execution(* egovframework.let..impl.*Impl.*(..)) or execution(* egovframework.com..*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
```
<EgovConfigAppTransaction.class>
```java
@Bean
public DataSourceTransactionManager txManager() {
DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
dataSourceTransactionManager.setDataSource(dataSource);
return dataSourceTransactionManager;
}
// -------------------------------------------------------------
// TransactionAdvice 설정
// -------------------------------------------------------------
@Bean
public TransactionInterceptor txAdvice(DataSourceTransactionManager txManager) {
TransactionInterceptor txAdvice = new TransactionInterceptor();
txAdvice.setTransactionManager(txManager);
txAdvice.setTransactionAttributeSource(getNameMatchTransactionAttributeSource());
return txAdvice;
}
private NameMatchTransactionAttributeSource getNameMatchTransactionAttributeSource() {
NameMatchTransactionAttributeSource txAttributeSource = new NameMatchTransactionAttributeSource();
txAttributeSource.setNameMap(getRuleBasedTxAttributeMap());
return txAttributeSource;
}
private HashMap<String, TransactionAttribute> getRuleBasedTxAttributeMap() {
HashMap<String, TransactionAttribute> txMethods = new HashMap<String, TransactionAttribute>();
RuleBasedTransactionAttribute txAttribute = new RuleBasedTransactionAttribute();
txAttribute.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
txAttribute.setRollbackRules(Collections.singletonList(new RollbackRuleAttribute(Exception.class)));
txMethods.put("*", txAttribute);
return txMethods;
}
// -------------------------------------------------------------
// TransactionAdvisor 설정
// -------------------------------------------------------------
@Bean
public Advisor txAdvisor(DataSourceTransactionManager txManager) {
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression(
"execution(* egovframework.let..impl.*Impl.*(..)) or execution(* egovframework.com..*Impl.*(..))");
return new DefaultPointcutAdvisor(pointcut, txAdvice(txManager));
}
```

@ -0,0 +1,64 @@
# context-validator.xml 설정 변환
> validator 설정 파일을 등록하는 역할을 한다.
validator 설정 파일들의 위치를 지정해 준다.
<context-validator.xml>
```xml
<bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator">
<property name="validatorFactory" ref="validatorFactory"/>
</bean>
<bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory">
<property name="validationConfigLocations">
<list>
<!-- 경량환경 템플릿 밸리데이터 설정 -->
<value>classpath:/egovframework/validator/validator-rules-let.xml</value>
<value>classpath:/egovframework/validator/let/**/*.xml</value>
</list>
</property>
</bean>
```
<EgovConfigAppValidator.class>
```java
@Bean
public DefaultBeanValidator beanValidator() {
DefaultBeanValidator defaultBeanValidator = new DefaultBeanValidator();
defaultBeanValidator.setValidatorFactory(validatorFactory());
return defaultBeanValidator;
}
@Bean
public DefaultValidatorFactory validatorFactory() {
DefaultValidatorFactory defaultValidatorFactory = new DefaultValidatorFactory();
defaultValidatorFactory.setValidationConfigLocations(getValidationConfigLocations());
return defaultValidatorFactory;
}
private Resource[] getValidationConfigLocations() {
PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();
List<Resource> validationConfigLocations = new ArrayList<Resource>();
Resource[] validationRulesConfigLocations = new Resource[] {
pathMatchingResourcePatternResolver
.getResource("classpath:/egovframework/validator/validator-rules-let.xml")
};
Resource[] validationFormSetLocations = new Resource[] {};
try {
validationFormSetLocations = pathMatchingResourcePatternResolver
.getResources("classpath:/egovframework/validator/let/**/*.xml");
} catch (IOException e) {
}
validationConfigLocations.addAll(Arrays.asList(validationRulesConfigLocations));
validationConfigLocations.addAll(Arrays.asList(validationFormSetLocations));
return validationConfigLocations.toArray(new Resource[validationConfigLocations.size()]);
}
```

@ -0,0 +1,60 @@
# context-whitelist.xml 설정 변환
> white list를 관리하는 설정이다.
white list를 등록하는 설정이다.
<context-whitelist.xml>
```xml
<util:list id="egovPageLinkWhitelist" value-type="java.lang.String">
<value>main/inc/EgovIncHeader</value>
<value>main/inc/EgovIncTopnav</value>
<value>main/inc/EgovIncLeftmenu</value>
<value>main/inc/EgovIncFooter</value>
<value>main/sample_menu/Intro</value>
<value>main/sample_menu/EgovDownloadDetail</value>
<value>main/sample_menu/EgovDownloadModify</value>
<value>main/sample_menu/EgovQADetail</value>
<value>main/sample_menu/EgovServiceInfo</value>
<value>main/sample_menu/EgovAboutSite</value>
<value>main/sample_menu/EgovHistory</value>
<value>main/sample_menu/EgovOrganization</value>
<value>main/sample_menu/EgovLocation</value>
<value>main/sample_menu/EgovProductInfo</value>
<value>main/sample_menu/EgovProductInfo</value>
<value>main/sample_menu/EgovServiceInfo</value>
<value>main/sample_menu/EgovDownload</value>
<value>main/sample_menu/EgovQA</value>
<value>main/sample_menu/EgovService</value>
</util:list>
```
<EgovConfigAppWhitelist.class>
```java
@Bean
public List<String> egovPageLinkWhitelist() {
List<String> whiteList = new ArrayList<String>();
whiteList.add("main/inc/EgovIncHeader");
whiteList.add("main/inc/EgovIncTopnav");
whiteList.add("main/inc/EgovIncLeftmenu");
whiteList.add("main/inc/EgovIncFooter");
whiteList.add("main/sample_menu/Intro");
whiteList.add("main/sample_menu/EgovDownloadDetail");
whiteList.add("main/sample_menu/EgovDownloadModify");
whiteList.add("main/sample_menu/EgovQADetail");
whiteList.add("main/sample_menu/EgovAboutSite");
whiteList.add("main/sample_menu/EgovHistory");
whiteList.add("main/sample_menu/EgovOrganization");
whiteList.add("main/sample_menu/EgovLocation");
whiteList.add("main/sample_menu/EgovProductInfo");
whiteList.add("main/sample_menu/EgovServiceInfo");
whiteList.add("main/sample_menu/EgovDownload");
whiteList.add("main/sample_menu/EgovQA");
whiteList.add("main/sample_menu/EgovService");
return whiteList;
}
```

@ -0,0 +1,40 @@
# JavaConfig 변환
## 1. web.xml 변환
기존의 web.xml에서 설정을 변환하여 EgovWebApplicationInitializer 에서 설정
```
src/main/java/egovframework/com/config/EgovWebApplicationInitializer.java
```
- [WebApplicationInitial 변환 방법](./WebApplicationInitializer-convert.md)
## 2. context-*.xml 변환
`src/main/java/egovframework/com/config/` 아래에 설정 파일 위치
기존 ApplicationContext 레벨의 설정들은 `EgovConfigApp*.java` 로 구성.
기존 WebApplicationContext 레벨의 설정들은 `EgovConfigWeb*.java` 로 구성
- [설정파일 변환 방법](./configuration-setting-bean-regist.md)
- [context-aspect 변환](./context-aspect-convert.md)
- [context-common 변환](./context-common-convert.md)
- [context-datasource 변환](./context-datasource-convert.md)
- [context-idgen 변환](./context-idgen-convert.md)
- [context-mapper 변환](./context-mapper-convert.md)
- [context-properties 변환](./context-properties-convert.md)
- [context-transaction 변환](./context-transaction-convert.md)
- [context-validator 변환](./context-validator-convert.md)
- [context-whitelist 변환](./context-whitelist-convert.md)
---
참고 사항
[Context의 계층 관계](./context-hierarchy.md)
[WebApplicationInitial이란](./WebApplicationInitializer.md)
Loading…
Cancel
Save