<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://kwonnam.pe.kr/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://kwonnam.pe.kr/wiki/feed.php">
        <title>권남 springframework</title>
        <description></description>
        <link>https://kwonnam.pe.kr/wiki/</link>
        <image rdf:resource="https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-05-13T17:57:24+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/3.1?rev=1355196277&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/3.2?rev=1414565461&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/4.0?rev=1422538615&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/4.1?rev=1436952013&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/4.2?rev=1443711163&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/4.3?rev=1468575364&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/5?rev=1605579773&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/6?rev=1739247855&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/abstractroutingdatasource?rev=1449464199&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/aop?rev=1614759143&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/async?rev=1674696001&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/asyncresttemplate?rev=1547438174&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/aws?rev=1690445576&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/batch?rev=1702010619&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/bean?rev=1636689950&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/bean_lifecycle?rev=1644898801&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/cacheabstraction?rev=1652759076&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/callback?rev=1529395451&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/cloud_function?rev=1585716375&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/cloud_gateway?rev=1636417622&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/cloud_sleuth?rev=1695270260&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/conditional?rev=1552734151&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/configuration?rev=1438308778&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/email?rev=1340246972&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/embeddeddatasource?rev=1654662263&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/event_listener?rev=1553594355&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/factorybean?rev=1613483522&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/feign?rev=1701129098&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/guides?rev=1597382452&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/hibernate?rev=1420030942&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/htmx?rev=1702946946&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/http_interface?rev=1694577482&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/httpstream?rev=1641283256&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/hystrix?rev=1551054194&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/initializr?rev=1613567881&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/injection?rev=1536896311&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/integration?rev=1633396405&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/javaconfig?rev=1535514562&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/javamailsender?rev=1550056334&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/jdbc?rev=1648042035&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/jms?rev=1597035115&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/jmx?rev=1446546253&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/jpa?rev=1520381534&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/kafka?rev=1690445115&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/lazyconnectiondatasourceproxy?rev=1357257486&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/meta_annotation?rev=1547203834&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/modulith?rev=1666587854&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/mvc?rev=1594948355&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/native?rev=1698276317&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/order?rev=1291617574&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/problem_spring_web?rev=1660623109&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/profile?rev=1385520346&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/propertysource?rev=1502411666&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/restdocs?rev=1663081293&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/resttemplate?rev=1642142589&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/retry?rev=1633420838&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/scheduler?rev=1694667180&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/scope?rev=1537175026&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/security?rev=1635811049&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/spel?rev=1533888962&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/spring-session?rev=1421629841&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/spring_cloud?rev=1628746096&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/spring_data_jdbc?rev=1694775021&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/spring_data_redis?rev=1694568884&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/spring_test_dbunit?rev=1594184654&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springboot?rev=1666746877&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springdoc?rev=1654174189&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springdoclet?rev=1423231315&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springfox?rev=1598405532&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springloaded?rev=1447732470&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springone2gx?rev=1540869543&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springshell?rev=1654437729&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/springwolf?rev=1650270140&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/staticinjection?rev=1329015569&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/stopwatch?rev=1345457645&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/test?rev=1626940913&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/thymeleaf?rev=1684627520&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/transaction?rev=1667972705&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/uricomponentsbuilder?rev=1459212017&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/utils?rev=1669893203&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/validation?rev=1569556458&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/vault?rev=1603520503&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/webclient?rev=1668752210&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/webflux?rev=1630972849&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/websocket?rev=1545807993&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/springframework/xmlconfig?rev=1442998243&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico">
        <title>권남</title>
        <link>https://kwonnam.pe.kr/wiki/</link>
        <url>https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/3.1?rev=1355196277&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-12-11T12:24:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:3.1</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/3.1?rev=1355196277&amp;do=diff</link>
        <description>Spring Framework 3.1 변경사항

	*  Flash Attribute : &lt;http://blog.goyello.com/2011/12/16/enhancements-spring-mvc31/&gt;
	*  RedirectAttributes로 redirect시의 문자열 파라미터 지정 가능해짐.
	*  HandlerInterceptor의 handler 파라미터가 컨트롤러 객체에서 org.springframework.web.method.HandlerMethod로 바뀜</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/3.2?rev=1414565461&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-10-29T15:51:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:3.2</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/3.2?rev=1414565461&amp;do=diff</link>
        <description>Spring Framework 3.2 변경사항

	*  Spring Framework 3.2 RC1: New Testing Features
	*  

참조

	*  Spring Framework 3.1 변경사항</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/4.0?rev=1422538615&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-01-29T22:36:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:4.0</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/4.0?rev=1422538615&amp;do=diff</link>
        <description>Spring Framework 4.0

	*  Migrating from earlier versions of the Spring Framework
	*  Spring 4 and Java 8</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/4.1?rev=1436952013&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-07-15T18:20:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:4.1</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/4.1?rev=1436952013&amp;do=diff</link>
        <description>Springframework 4.1

	*  스프링4.1 @Sql 사용하기
	*  Using Google Protocol Buffers with Spring MVC-based REST Services
	*  Spring Framework 4.1 - handling static web resources</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/4.2?rev=1443711163&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-01T23:22:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:4.2</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/4.2?rev=1443711163&amp;do=diff</link>
        <description>Spring Framework 4.2

	*  Better Application Events in Spring Framework 4.2 
	*  Annotation-driven event listeners in Spring 4.2</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/4.3?rev=1468575364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-07-15T18:06:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:4.3</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/4.3?rev=1468575364&amp;do=diff</link>
        <description>Spring Framework 4.3

	*  What's New in Spring 4.3?</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/5?rev=1605579773&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-17T11:22:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:5</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/5?rev=1605579773&amp;do=diff</link>
        <description>SpringFramework 5

	*  What's New in Spring Framework 5.x · spring-projects/spring-framework Wiki
	*  Upgrading to Spring Framework 5.x · spring-projects/spring-framework Wiki
	*  New in Spring 5: Functional Web Framework
	*  Reactive Spring
	*  Spring Webflux: Getting started
	*  New in Spring Framework 5.0: Functional Web Framework
	*  Spring MVC 5 Servlet 3.0 MultipartConfigElement Example | Examples Java Code Geeks - 2018
	*  Thread-local state availability in reactive services 
	*  Understa…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/6?rev=1739247855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-11T13:24:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:6</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/6?rev=1739247855&amp;do=diff</link>
        <description>SpringFramework 6

	*  SpringBoot 3
	*  What's New in Spring Framework 6.x · spring-projects/spring-framework Wiki
	*  Upgrading to Spring Framework 6.x · spring-projects/spring-framework Wiki
	*  A Java 17 and Jakarta EE 9 baseline for Spring Framework 6
	*  From Spring Framework 5.3 to 6.0 - YouTube
	*  Josh Long — Spring Framework 6: Not Your Parents' Spring - YouTube
	*  Spring Tips: the road to Spring Boot 3: Spring Framework 6 - YouTube
	*  Migrating from the `javax` to `jakarta` namespace…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/abstractroutingdatasource?rev=1449464199&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-12-07T13:26:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:abstractroutingdatasource</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/abstractroutingdatasource?rev=1449464199&amp;do=diff</link>
        <description>SpringFramework AbstractRoutingDataSource

	*  동일 DB 스키마에 대한 다중 DB 접속 처리를 할 때 AbstractRoutingDataSource를 사용한다.
	*  Dynamic DataSource Routing - 가장 주요한 참조
	*  기타 참조
		*  Spring + MyBatis 에서 여러 개의 Datasource Routing 하는 방법 » 엔지니어와 아티스트 사이
		*  AbstractRoutingDataSource 에 대한 정리
		*  Anyframe Routing DataSource Plugin
		*  MyBatis + AbstractRoutingDataSource


Shard DataSource 구분자…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/aop?rev=1614759143&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-03T17:12:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:aop</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/aop?rev=1614759143&amp;do=diff</link>
        <description>Spring AOP

&quot;@annotation&quot;

	*  인터페이스 메소드에 건 Annotation은 상속되지 않는다.
	*  따라서 “@annotation” 포인트컷은 인터페이스 메소드에 걸면 안된다.
	*  부모 클래스 메소드나 혹은 인터페이스 구현 클래스에 걸어줘야 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/async?rev=1674696001&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-26T10:20:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:async</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/async?rev=1674696001&amp;do=diff</link>
        <description>Spring @Async

	*  Spring Async
	*  ThreadPoolTaskExecutor로 비동기 코드 실행
	*  Java ExecutorService
	*  비동기 작업시 Spring Framework Bean Lifecycle에 있는 SmartLifeCycle을 구현해줘야만 한다.

설정

	*  Java 8 이후 버전에서는 AsyncConfigurer interface를 구현하면 된다. default method 라서 원하는 것만 선택구현가능함.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/asyncresttemplate?rev=1547438174&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-14T12:56:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:asyncresttemplate</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/asyncresttemplate?rev=1547438174&amp;do=diff</link>
        <description>AsyncRestTemplate

	*  AsyncRestTemplate
	*  Spring 5 부터는 이거보다는 WebClient 를 사용하는게 맞겠다.
	*  비동기 Spring RestTemplate

주의

	*  기본 설정은 쓰레드 풀 기반 비동기임.
	*  Non Blocking IO 기반 비동기로 바꾸려면 HTTP Client Factory를 Netty나, 기타 non blocking 으로 지정해야함.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/aws?rev=1690445576&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-27T17:12:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:aws</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/aws?rev=1690445576&amp;do=diff</link>
        <description>Spring Cloud AWS

	*  &lt;https://awspring.io/&gt;
	*  &lt;https://spring.io/projects/spring-cloud-aws&gt;
	*  &lt;https://github.com/awspring/spring-cloud-aws&gt;

하위

	*  Spring Cloud AWS - SQS</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/batch?rev=1702010619&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-08T13:43:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:batch</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/batch?rev=1702010619&amp;do=diff</link>
        <description>Spring Framework Batch

	*  SpringBoot와 SpringBatch

@EnableBatchProcessing

	*  @EnableBatchProcessing을 통해 기본 배치 설정을 수행한다.

DefaultBatchConfigurer

	*  설정 중 일부를 Override하고자 한다면 DefaultBatchConfigurer 를 Configuration class에서 상속해서 메소드를 오버라이드 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/bean?rev=1636689950&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-12T13:05:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:bean</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/bean?rev=1636689950&amp;do=diff</link>
        <description>SpringFramework Bean

Springframework Bean Life Cycle

	*  Spring Framework Bean Lifecycle
	*  [Spring 레퍼런스] 4장 IoC 컨테이너 #8 4.8 컨테이너 확장점(Extension Points)

BeanPostProcessor

	*  BeanPostProcessor
	*  Spring Bean의 생성 전후에 Bean에 대한 초기화 작업을 수행할 수 있다.
	*  BeanPostProcessor는 빈(또는 객체) 인스턴스상에서 동작한다. 즉, 스프링 IoC 컨테이너는 빈 인스턴스를 인스턴스화한 다음에 BeanPostProcessor가 자신의 일을 수행한다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/bean_lifecycle?rev=1644898801&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-15T13:20:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:bean_lifecycle</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/bean_lifecycle?rev=1644898801&amp;do=diff</link>
        <description>Spring Framework Bean Lifecycle

	*  SpringFramework Bean
	*  @PostConstruct
	*  @PreDestroy
	*  InitializingBean
	*  DisposableBean
	*  @Bean(initMethod=“”, destroyMethod=“”)
	*  BeanNameAware
	*  ApplicationContextAware

@PostConstruct / @PreDestroy 의존성</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/cacheabstraction?rev=1652759076&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-17T12:44:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:cacheabstraction</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/cacheabstraction?rev=1652759076&amp;do=diff</link>
        <description>Spring Cacheh Abstraction

	*  Spring 3.1 부터 Cache Abstraction이 추가되었다. 캐시 구현체와 무관하게 캐싱을 수행할 수 있게 되었다.

다중 CacheManager

	*  Using Multiple Cache Managers in Spring | Baeldung

참조

	*  Captain Debug's Blog: Spring 3.1 Caching and Config : 가장 기본적인 캐시 구현 방법을 보여준다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/callback?rev=1529395451&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-19T17:04:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:callback</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/callback?rev=1529395451&amp;do=diff</link>
        <description>SpringFramework Callback

	*  Guide To Running Logic on Startup in Spring | Baeldung
	*  Spring Shutdown Callbacks | Baeldung
	*  Spring Bean Life Cycle and Callbacks - Dinesh on Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/cloud_function?rev=1585716375&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-01T13:46:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:cloud_function</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/cloud_function?rev=1585716375&amp;do=diff</link>
        <description>Spring Cloud Function

	*  Spring Cloud Function
	*  Spring Framework으로 AWS Lambda 같은 Serlverless 기능 구성

참조

	*  Serverless Functions with Spring Cloud Function | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/cloud_gateway?rev=1636417622&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-09T09:27:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:cloud_gateway</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/cloud_gateway?rev=1636417622&amp;do=diff</link>
        <description>Spring Cloud Gateway

	*  Spring Cloud Gateway
	*  Spring Boot / WebFlux / Reactor 기반의 Non Blocking API Gateway.
	*  Zuul 에 대응. Java/Spring 기반 개발자들에게는 Spring Cloud Gateway 가 더 나아 보인다.
		*  이 페이지에 API Gateway 설계에 대한 내용을 많이 정리해뒀음.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/cloud_sleuth?rev=1695270260&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-21T13:24:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:cloud_sleuth</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/cloud_sleuth?rev=1695270260&amp;do=diff</link>
        <description>Spring Cloud Sleuth

	*  &lt;https://spring.io/projects/spring-cloud-sleuth&gt;
	*  OpenTracing
	*  Zipkin

Spring Boot 3

	*  더이상 Sleuth 지원 안함. Micrometer Application Observability - Tracing 으로 전환
	*  Spring Cloud Sleuth 3.1 Migration Guide · micrometer-metrics/tracing Wiki

참조

	*  How To Implement Distributed Logging Tracing Using Sleuth Zipkin | Making Java Easy To Learn</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/conditional?rev=1552734151&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-16T20:02:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:conditional</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/conditional?rev=1552734151&amp;do=diff</link>
        <description>Spring Conditional Configuration / Bean

참조

	*  Conditional Beans with Spring Boot - reflectoring</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/configuration?rev=1438308778&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-07-31T11:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:configuration</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/configuration?rev=1438308778&amp;do=diff</link>
        <description>Spring Framework Configuration

	*  Springframework Java Config

Bean Override

	*  서로 다른 설정파일에서 Bean Name이 동일할 경우 나중에 선언된 것이 앞서 선언된 Bean을 Override한다. 동일 설정파일에서의 동일 이름 선언은 에러를 낸다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/email?rev=1340246972&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-06-21T11:49:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:email</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/email?rev=1340246972&amp;do=diff</link>
        <description>Spring Java Mail Sender

Spring Java Mail Sender는 JavaMail을 사용한다.


&lt;dependency&gt;
  &lt;groupId&gt;javax.mail&lt;/groupId&gt;
  &lt;artifactId&gt;mail&lt;/artifactId&gt;
  &lt;version&gt;1.4.3&lt;/version&gt;
&lt;/dependency&gt;


	*  &lt;http://www.javabeat.net/2008/11/email-integration-in-spring-framework/&gt;
	*  &lt;http://www.mkyong.com/spring/spring-sending-e-mail-via-gmail-smtp-server-with-mailsender/&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/embeddeddatasource?rev=1654662263&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-08T13:24:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:embeddeddatasource</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/embeddeddatasource?rev=1654662263&amp;do=diff</link>
        <description>Spring Framework Embedded DataSource

	*  내장 메모리 DB들을 쉽게 생성해 줄 수 있도록 도와주는 XML 네임스페이와 클래스가 생겼다.
	*  Embedded Database

XML


&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
     xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xmlns:jdbc=&quot;http://www.springframework.org/schema/jdbc&quot;
xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   h…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/event_listener?rev=1553594355&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-26T18:59:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:event_listener</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/event_listener?rev=1553594355&amp;do=diff</link>
        <description>SpringFramework @EventListener

	*  @EventListener

참조

	*  Reliable Domain Events – pilo – Software Developer
	*  Spring Events | Baeldung
	*  Better application events in Spring Framework 4.2
	*  Spring Framework 4.2에서 애플리케이션 이벤트 | Developer's Record</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/factorybean?rev=1613483522&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-16T22:52:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:factorybean</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/factorybean?rev=1613483522&amp;do=diff</link>
        <description>Spring FactoryBean

	*  FactoryBean은 스스로 SpringBean을 생성할수 없는 클래스에 대해 필요한 설정값을 받아서 스프링 빈을 생성해준다.
	*  FactoryBean 인터페이스를 구현하면 된다.

isSingletone()

	*  얘는 보통 true로 주고, getObject()에서는 해당 팩토리 인스턴스에서는 항상 동일한(싱글턴) 객체를 리턴하도록 처리한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/feign?rev=1701129098&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-28T08:51:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:feign</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/feign?rev=1701129098&amp;do=diff</link>
        <description>Fegin

	*  Feign - makes writing java http clients easier
	*  Feign Reactive Feign Project Reactor, RxJava support
	*  Feign-Reactive 비공식 Feign - Spring WebFlux 지원
	*  HTTP Api 호출 client를 Spring Data 처럼 interface 작성만으로 가능한 수준으로 만들어준다.
	*  see Spring RestTemplate
	*  WebClient

async/non-blocking

	*  openfeign 10.8 버전부터 Async 를 지원하고, 그 구현체로 non-blocking 인 Java 11 HTTP Client 와 Async</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/guides?rev=1597382452&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-14T14:20:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:guides</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/guides?rev=1597382452&amp;do=diff</link>
        <description>Spring Guides

	*  Spring Framework Guides
	*  &lt;https://spring.io/guides&gt;
	*  &lt;https://github.com/spring-guides&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/hibernate?rev=1420030942&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-12-31T22:02:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:hibernate</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/hibernate?rev=1420030942&amp;do=diff</link>
        <description>Springframework와 Hibernate

	*  Hibernate
	*  Hibernate 4 with Spring

기본설정


@Configuration
@EnableTransactionManagement
@PropertySource({ &quot;classpath:persistence-mysql.properties&quot; })
@ComponentScan({ &quot;org.baeldung.spring.persistence&quot; })
public class PersistenceConfig {
 
   @Autowired
   private Environment env;
 
   @Bean
   public LocalSessionFactoryBean sessionFactory() {
      LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
      sessionFactory.setDataSource(restData…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/htmx?rev=1702946946&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-19T09:49:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:htmx</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/htmx?rev=1702946946&amp;do=diff</link>
        <description>SpringFramework와 HTMX

	*  Spring Framework 와 htmx
	*  Thymeleaf 와 함께 사용.

참조

	*  Client Side Development with Spring Boot Applications
	*  wimdeblauwe/htmx-spring-boot-thymeleaf: Spring Boot and Thymeleaf helpers for working with htmx</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/http_interface?rev=1694577482&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-13T12:58:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:http_interface</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/http_interface?rev=1694577482&amp;do=diff</link>
        <description>Spring HTTP Client Interface

	*  HTTP Interface Client

retry

	*  &lt;https://stackoverflow.com/a/74631031&gt;
	*  ExchangeFilterFunction 으로 지정한다.


 @Bean
  TodoClient todoClient() {
    WebClient webClient =
        WebClient.builder()
            .baseUrl(&quot;sampleUrl&quot;)
            .filter(retryFilter())
            .build();
    HttpServiceProxyFactory factory =
        HttpServiceProxyFactory.builder(WebClientAdapter.forClient(webClient)).build();
    return factory.createClient(TodoClient.class)…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/httpstream?rev=1641283256&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-04T17:00:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:httpstream</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/httpstream?rev=1641283256&amp;do=diff</link>
        <description>Spring HTTP Streaming

	*  WebSocket과 유사한 효과를 낼 수 있는 방식
	*  Spring WebFlux 사용시 더 깔끔하다.

ServerSentEvent Reverse Proxy(nginx) 설정

	*  Ngnix 같은 reverse proxy 사용시에 buffering 을 끄는 등의 별도 설정이 필요하다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/hystrix?rev=1551054194&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-02-25T09:23:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:hystrix</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/hystrix?rev=1551054194&amp;do=diff</link>
        <description>Hystrix

참고

	*  MicroServices – Part 4 : Spring Cloud Circuit Breaker using Netflix Hystrix | Java Code Geeks - 2018
	*  &lt;https://www.javacodegeeks.com/2014/09/defend-your-application-with-hystrix.html&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/initializr?rev=1613567881&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-17T22:18:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:initializr</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/initializr?rev=1613567881&amp;do=diff</link>
        <description>Spring Initializr

	*  &lt;https://github.com/spring-io/initializr&gt;
	*  &lt;https://github.com/spring-io/start.spring.io&gt;

의존성 목록 가져오기

	*  get list of all dependencies of Spring Initializr, using curl - Stack Overflow


# 모든 spring initializr 관련 정보를 JSON 으로 출력 
curl -H 'Accept: application/json' https://start.spring.io

# 그 중에 의존성 관련 정보만 출력
curl -H 'Accept: application/json' https://start.spring.io | jq '.dependencies.values[].values[].id'…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/injection?rev=1536896311&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-14T12:38:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:injection</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/injection?rev=1536896311&amp;do=diff</link>
        <description>Spring Dependency Injection

	*  @Autowired
	*  @Inject
	*  @Resource</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/integration?rev=1633396405&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-05T10:13:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:integration</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/integration?rev=1633396405&amp;do=diff</link>
        <description>Spring Integration

	*  Spring Integration

참조

	*  Introduction to Spring Integration | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/javaconfig?rev=1535514562&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-29T12:49:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:javaconfig</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/javaconfig?rev=1535514562&amp;do=diff</link>
        <description>Springframework Java Config

	*  Spring 3.1 부터 본격적으로 도입됨.
	*  SpringFramework Bean

컨텍스트 클래스

	*  AnnotationConfigApplicationContext

메소드 인자를 통한 주입 받기

	*  한 @Configuration 클래스안에서 FactoryBean으로 생성한 Bean과 그것을 주입 받는 빈이 있을 때, 메소드 직접 호출을 통한 주입이 애매하다. 빈을 생성하는 메소드를 직접 호출하면 FactoryBean 객체가 리턴되기 때문이다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/javamailsender?rev=1550056334&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-02-13T20:12:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:javamailsender</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/javamailsender?rev=1550056334&amp;do=diff</link>
        <description>JavaMailSender

	*  java email mail sender

첨부파일

	*  Spring – Sending e-mail with attachment


public class MailMail
{
    private JavaMailSender mailSender;
    private SimpleMailMessage simpleMailMessage;

    public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) {
        this.simpleMailMessage = simpleMailMessage;
    }

    public void setMailSender(JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }

    public void sendMail(String dear, String content…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/jdbc?rev=1648042035&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-23T22:27:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:jdbc</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/jdbc?rev=1648042035&amp;do=diff</link>
        <description>Springframework JDBC

	*  Spring Framework Embedded DataSource
	*  ResourceDatabasePopulator DB에 초기 데이터를 적재하는 스크립트 로더.
	*  Spring JDBC Tutorial

Stored Procedure

	*  Different ways of calling stored procedure using spring

NamedParameterJdbcTemplate

	*  NamedParameterJdbcTemplate
	*  :paramName 방식으로 파라미터 바인딩 가능
	*  SqlParameterSource를 통해 파라미터 저장
		*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/jms?rev=1597035115&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-10T13:51:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:jms</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/jms?rev=1597035115&amp;do=diff</link>
        <description>SpringFramework &amp; JMS

	*  Spring Framework &amp; JMS / Java Message Service, ActiveMQ

SpringBoot &amp; JMS(activeMQ)

	*  Getting Started | Messaging with JMS</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/jmx?rev=1446546253&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-03T18:54:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:jmx</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/jmx?rev=1446546253&amp;do=diff</link>
        <description>SpringFramework JMX

	*  SpringFramework Reference JMX

주의점

	*  MBean Export 사용시 export 대상 Bean(@ManagedResource)과 @EnableMBeanExport가 동일 컨텍스트에 있어야 Bean 탐색과 등록이 올바로 된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/jpa?rev=1520381534&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-07T08:42:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:jpa</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/jpa?rev=1520381534&amp;do=diff</link>
        <description>SpringFramework와 JPA

	*  JPA
	*  Spring Data JPA
	*  A Guide to Hibernate with Spring 4 | Baeldung

EntityManager 주입


// EntityManager의 프록시 주입
@PersistenceContext EntityManager em;


예외 변환(Hibernate 연동에서도 동일)

	*  DAO 클래스에 @Repository 어노테이션을 부여한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/kafka?rev=1690445115&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-27T17:05:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:kafka</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/kafka?rev=1690445115&amp;do=diff</link>
        <description>SpringFramework Kafka

	*  Spring Framework 과 Kafka
	*  Spring for Apache Kafka
	*  

Kafka Listener Concurrency

	*  @KafkaListener 에 concurrency
	*  한 리스너당 Kafka 파티션 갯수보다 많은 concurrency를 지정해도 무의미하다. 최대 파티션 갯수만큼만 동시 처리한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/lazyconnectiondatasourceproxy?rev=1357257486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-01-04T08:58:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:lazyconnectiondatasourceproxy</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/lazyconnectiondatasourceproxy?rev=1357257486&amp;do=diff</link>
        <description>LazyConnectionDataSourceProxy

	*  스프링은 트랜잭션 시작시 컨넥션의 실제 사용여부와 무관하게 커넥션을 확보한다.
	*  이로인해 트랜잭션 시작 후 커넥션과 무관한 다른 작업으로 많은 시간이 지체되면 그 시간 동안 해당 트랜잭션의 커넥션은 사용불가 상태가 되어, 데이터소스에 커넥션 풀이 부족해지는 사태를 유발할 수도 있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/meta_annotation?rev=1547203834&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-11T19:50:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:meta_annotation</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/meta_annotation?rev=1547203834&amp;do=diff</link>
        <description>SpringFramework Meta Annotation

	*  Spring Framework 4 버전부터 메타 어노테이션에서 alias 기능 생김

예: @Transactional override

	*  DataSource와 TransactionManager가 여러개일 때 각 트랜잭션 매니저마다 별도의 @Transactional을 만들어주고 싶을 때</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/modulith?rev=1666587854&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-24T14:04:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:modulith</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/modulith?rev=1666587854&amp;do=diff</link>
        <description>Spring Modulith

	*  Spring Modulith
	*  &lt;https://github.com/spring-projects-experimental/spring-modulith&gt;

참조

	*  Introducing Spring Modulith</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/mvc?rev=1594948355&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-17T10:12:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:mvc</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/mvc?rev=1594948355&amp;do=diff</link>
        <description>Spring MVC

	*  Spring MVC-AJAX Samples
	*  rstoyanchev/spring-mvc-31-demo

&lt;mvc:resources&gt;

아래와 같은 형태로 정적 파일을 제공해 줄 수 있다. 정적 리소스의 경로는 /resources-버전/images/test.gif 형태가 된다.

이 역할을 하는 핸들러는 ResourceHttpRequestHandler 이다.


&lt;mvc:resources
  mapping=&quot;/resources-#{T(static.auto.VersionGenerator).VERSION}/**&quot;
  location=&quot;/WEB-INF/static_resources/&quot; cache-period=&quot;캐시초&quot; /&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/native?rev=1698276317&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-26T08:25:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:native</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/native?rev=1698276317&amp;do=diff</link>
        <description>Spring Native

	*  &lt;https://github.com/spring-projects-experimental/spring-graalvm-native&gt;
	*  GraalVM Native Image Support SpringBoot 공식 문서
	*  Native Images with Spring Boot and GraalVM | Baeldung
	*  Optimising Performance with GraalVM: A Guide to Migrating a Spring Boot Project to Native Image | by Abhishek Anand | CodeX | Medium

참조

	*  Spring Native for GraalVM 0.8.3 available now
	*  Introduction to Spring Native | Baeldung
	*  Building Native Images with GraalVM and Spring Native on App…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/order?rev=1291617574&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-12-06T15:39:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:order</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/order?rev=1291617574&amp;do=diff</link>
        <description>order 지정

SpringFramework에서 객체들간의 순서를 지정할 필요가 있을 때(ViewResolver등이 그렇다)  org.springframework.core.Ordered 인터페이스를 구현하고 빈 설정시에 order 값을 지정한다. 작은 수가 순번이 높고, 큰 수가 순번이 낮다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/problem_spring_web?rev=1660623109&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-16T13:11:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:problem_spring_web</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/problem_spring_web?rev=1660623109&amp;do=diff</link>
        <description>Problem Spring Web

	*  &lt;https://github.com/zalando/problem-spring-web&gt;
	*  HTTP Problem
	*  problem을 Spring MVC와 Spring WebFlux 에서의 Exception 과 Error 처리 기법 등록.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/profile?rev=1385520346&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-11-27T11:45:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:profile</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/profile?rev=1385520346&amp;do=diff</link>
        <description>Spring Framework Profile

	*  Spring Framework 3.1 부터 가능
	*  Gal Levinsky: Spring Profile pattern , part 1

Profile Annotation

프로필별로 Package 탐색으로 생성되는 Spring Bean 지정을 자동화하기.


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Profile(&quot;dev&quot;)
public @interface Dev {
}


// dev 프로필에서만 생성되는 빈
@Dev
@Component
public class SomeComponent {
 ...
}</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/propertysource?rev=1502411666&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-08-11T09:04:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:propertysource</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/propertysource?rev=1502411666&amp;do=diff</link>
        <description>PropertySource

	*  Spring 3.1 M1: Unified Property Management
	*  Spring 3.1 부터 생기기 시작한 통합 프라퍼티 관리 시스템
	*  시스템 프라퍼티, 환경변수, JNDI 등을 모두 하나의 공간에 넣고 그 값을 읽고 설정할 수 있게 해준다.
	*  Custom PropertySource in Spring 3.1 : 프라퍼티 소스에 Redis의 데이터를 추가하는 예제</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/restdocs?rev=1663081293&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-14T00:01:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:restdocs</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/restdocs?rev=1663081293&amp;do=diff</link>
        <description>Spring REST Docs

	*  &lt;http://projects.spring.io/spring-restdocs/&gt;
	*  &lt;https://spring.io/guides/gs/testing-restdocs/&gt;
	*  ePages-de/restdocs-api-spec: Adds API specification support to Spring REST Docs
	*  &lt;https://github.com/BerkleyTechnologyServices/restdocs-spec&gt;
	*  ScaCap/spring-auto-restdocs: Spring Auto REST Docs is an extension to Spring REST Docs
	*  Spring WebFlux 는 spring-restdocs-webtestclient 사용.
	*  Rest Assured 함께 참조

참고

	*  HTTP Client in IntelliJ IDEA Code Editor - Help | Inte…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/resttemplate?rev=1642142589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-14T15:43:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:resttemplate</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/resttemplate?rev=1642142589&amp;do=diff</link>
        <description>Spring RestTemplate

	*  Rest in Spring 3 RestTemplate
	*  Spring RestTemplate Tutorial
	*  Get and Post Lists of Objects with RestTemplate | Baeldung
	*  Configure a RestTemplate with RestTemplateBuilder | Baeldung
	*  Spring Boot RestTemplate Tutorials - HowToDoInJava
	*  see Fegin

HttpEntity

	*  org.springframework.http.HttpEntity HTTP 데이터를 세심하게 제어한다.

POST에서 파라미터 보내기

	*  java - Spring RestTemplate postForObject with Header: webservice can't find my header parameters

MultiValueMap&lt;String,…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/retry?rev=1633420838&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-05T17:00:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:retry</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/retry?rev=1633420838&amp;do=diff</link>
        <description>Spring Retry

	*  spring-retry
	*  spring-retry Maven Repository

Simple Example


RetryTemplate retryTemplate = new RetryTemplate();
  
FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy();
fixedBackOffPolicy.setBackOffPeriod(2000l);
retryTemplate.setBackOffPolicy(fixedBackOffPolicy);

SimpleRetryPolicy retryPolicy = new SimpleRetryPolicy();
retryPolicy.setMaxAttempts(2);
retryTemplate.setRetryPolicy(retryPolicy);

retryTemplate.execute(new RetryCallback&lt;Void, RuntimeException&gt;() {
…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/scheduler?rev=1694667180&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-14T13:53:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:scheduler</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/scheduler?rev=1694667180&amp;do=diff</link>
        <description>Spring Scheduler

	*  Getting Started | Scheduling Tasks
	*  The @Scheduled Annotation in Spring | Baeldung
	*  어노테이션 기반으로 사용하기 간편한 스케줄러. 단 multi instance 에 대한 대비가 안 된다.
	*  복잡한 기능에 multi instance 에서 상호 배타적 실행이 보장 돼야 한다면 Quartz 를 사용해야한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/scope?rev=1537175026&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-17T18:03:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:scope</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/scope?rev=1537175026&amp;do=diff</link>
        <description>Spring Bean Scope

	*  @Lookup Annotation in Spring

prototype Scope

	*  매번 객체 새로 생성할 필요가 있을 경우 사용한다.
	*  @PreDestroy 애노테이션이 작동하지 않는다. 즉, 초기화는 하지만 종료 처리는 하지 않으므로 종료처리를 Bean 사용처에서 직접해야 한다. 그 외의 다른 스코프에서는 작동한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/security?rev=1635811049&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-02T08:57:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:security</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/security?rev=1635811049&amp;do=diff</link>
        <description>Spring Security

	*  현재 페이지는 Spring Security 3.x 기준
	*  Spring Security Custom Filter

http

	*  &lt;intercept-url pattern=“/someurl/*” filters=“none” /&gt; 에서 filters=“none”이면 해당 URL에서는 Spring Security 관련 기능이 아무것도 작동하지 않게 된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/spel?rev=1533888962&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-10T17:16:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:spel</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/spel?rev=1533888962&amp;do=diff</link>
        <description>SpEL

	*  SpEL
	*  Learning the Spring Expression Language (SpEL) - DZone Java

상수 사용하기


#{T(fully.qualified.ClassName).CONSTANT}


Operators

	*  Safe Navigation Operator
		*  user?.address?.postcode 형태로 사용할 경우 user와 address가 null이라도 오류가 발생하지 않게 된다.
		*</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/spring-session?rev=1421629841&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-01-19T10:10:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:spring-session</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/spring-session?rev=1421629841&amp;do=diff</link>
        <description>Spring Session

	*  Spring Session</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/spring_cloud?rev=1628746096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-12T14:28:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:spring_cloud</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/spring_cloud?rev=1628746096&amp;do=diff</link>
        <description>Spring Cloud

	*  &lt;https://spring.io/projects/spring-cloud&gt;

AWS

	*  AWS
	*  AWS 기반 Spring Boot 애플리케이션 개발 시작하기 | Amazon Web Services 한국 블로그</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/spring_data_jdbc?rev=1694775021&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-15T19:50:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:spring_data_jdbc</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/spring_data_jdbc?rev=1694775021&amp;do=diff</link>
        <description>Spring Data JDBC

	*  Spring Data JDBC
	*  &lt;https://github.com/spring-projects/spring-data-jdbc&gt;
	*  Introducing Spring Data JDBC
	*  Spring Data JDBC &amp; QueryDSL

가장 큰 특징

	*  Entity 가 proxy 객체가 아닌 POJO 이기 때문에, proxy 일 때 발생하는 숨은 동작들이 발생하지 않는다.
	*  이 특징을 잘 활용하면 side effect 없이 다양한 시도를 할 수 있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/spring_data_redis?rev=1694568884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-13T10:34:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:spring_data_redis</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/spring_data_redis?rev=1694568884&amp;do=diff</link>
        <description>spring-data-redis

	*  Spring Data Redis
	*  Redis를 Spring Data 의 기본 repository 를 통해 사용하게 해준다. 마치 Spring Data JPA 처럼 사용할 수 있다.



문제점

	*  redis 는 key-value 스토리지라서 index 개념이 없고 필드 조건에 따른 조회 기능이 없는데 spring-data-redis 를 사용하면 spring-data 의 기본 요건에 따라 인덱싱 관련 데이터를 추가로 만들면서 데이터량이 매우 증가하게 된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/spring_test_dbunit?rev=1594184654&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T14:04:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:spring_test_dbunit</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/spring_test_dbunit?rev=1594184654&amp;do=diff</link>
        <description>Spring Test DBUnit

	*  ppodgorsek/spring-test-dbunit : 새로운 포크
	*  Spring Test DBUnit : 더이상 유지 안됨.
	*  database-rider 사용 권장.
	*  DBUnit과 Spring을 쉽게 연동할 수 있게 해준다.

MySQL Multiple Schema 지원 기본 설정


@Bean
public DatabaseConfigBean dbUnitDatabaseConfig() {
    DatabaseConfigBean config = new DatabaseConfigBean();
    config.setQualifiedTableNames(true); // schema 지원
    config.setMetadataHandler(new MySqlMetadataHandler()); // MySQL 에서 MetaData를 올바로 읽으려면 필요
    config.setDatatypeFactory(new MySqlDat…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springboot?rev=1666746877&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-26T10:14:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springboot</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springboot?rev=1666746877&amp;do=diff</link>
        <description>SpringBoot

	*  Spring Boot
	*  Spring Initializr
	*  Learn Spring Boot | Baeldung
	*  SpringBoot DevTools
	*  SpringBoot Properties
	*  Spring Boot And JPA
	*  SpringBoot and Spring MVC
	*  SpringBoot and JSON
	*  SpringBoot와 SpringBatch
	*  SpringBoot Admin
	*  SpringBoot and Gradle
	*  SpringBoot Test
	*  SpringBoot CLI
	*  SpringBoot startup 최적화 / optimization
	*  Dependency versions 여기서 의존 라이브러리 버전과 프라퍼티명 확인

@EnableAutoConfiguration

	*  @EnableAutoConfiguration
	*  특정 Auto Configuration 방…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springdoc?rev=1654174189&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-02T21:49:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springdoc</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springdoc?rev=1654174189&amp;do=diff</link>
        <description>SpringDoc - SpringFramework Open API Specification

	*  springdoc-openapi | Library for OpenAPI 3 with spring-boot
	*  Spring Framework &amp; Open API Specification
	*  OpenAPI 3 어노테이션 없이, Spring MVC/WebFlux 어노테이션을 인식하여 자동으로 OpenAPI Spec 3 문서 생성
	*  SpringFox

기본 설정

	*  @ControllerAdvice 사용시 @ResponseStatus</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springdoclet?rev=1423231315&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-02-06T23:01:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springdoclet</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springdoclet?rev=1423231315&amp;do=diff</link>
        <description>Doclets for Springframework

	*  Rest Api Documentation 참조
	*  Swagger도 참조

SpringDoclet

	*  SpringDoclet JavaDoc for Springframework

Gradle SpringDoclet

Add Gradle example · Issue #3 · scottfrederick/springdoclet 참조.


configurations {
    springDoclet
}

dependencies {
    springDoclet files(&quot;libs/springdoclet-0.0.1-jar-with-dependencies.jar&quot;)
}

task generateRestApiDocs(type: Javadoc) {
    source = sourceSets.main.allJava
    destinationDir = file(&quot;${buildDir}/docs/springdoc&quot;)

    classp…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springfox?rev=1598405532&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-26T10:32:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springfox</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springfox?rev=1598405532&amp;do=diff</link>
        <description>SpringFox

	*  &lt;https://springfox.github.io/springfox/docs/current/&gt;
	*  Swagger 의 Spring 구현
	*  Swagger -&gt; OpenAPI Specification 이 되었으며, OpenAPI Specification 문서화는  SpringDoc - SpringFramework Open API Specification 참조.

	&quot; The Springfox suite of java libraries are all about automating the generation of machine and human readable specifications for JSON APIs written using the spring family of projects.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springloaded?rev=1447732470&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-11-17T12:24:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springloaded</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springloaded?rev=1447732470&amp;do=diff</link>
        <description>Spring Loaded

	*  &lt;https://github.com/spring-projects/spring-loaded&gt;

실행


java -javaagent:&lt;pathTo&gt;/springloaded-{VERSION}.jar -noverify SomeJavaClass


Tomcat 등에서 실행할 경우에는 CATALINA_OPTS 등에 옵션을 주면된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springone2gx?rev=1540869543&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-30T12:19:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springone2gx</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springone2gx?rev=1540869543&amp;do=diff</link>
        <description>Spring One 2GX

2018

	*  &lt;https://www.infoq.com/presentations/springone-platform-2018-keynote-1&gt;
	*  &lt;https://www.infoq.com/presentations/springone-platform-2018-keynote-2&gt;
	*  &lt;https://www.infoq.com/presentations/springone-platform-2018-keynote-3&gt;
	*  &lt;https://www.infoq.com/presentations/spring-reactive-webflux&gt;
	*  &lt;https://www.infoq.com/presentations/upgrade-spring-boot-1-5-2&gt;

2016

	*  SpringOne Platform 2016 Replay: Apache Tomcat Roadmap
	*  SpringOne Platform 2016 Replay: Modern Java Com…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springshell?rev=1654437729&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-05T23:02:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springshell</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springshell?rev=1654437729&amp;do=diff</link>
        <description>Spring Shell

	*  &lt;https://github.com/spring-projects/spring-shell&gt;
	*  &lt;https://spring.io/projects/spring-shell&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/springwolf?rev=1650270140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-18T17:22:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:springwolf</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/springwolf?rev=1650270140&amp;do=diff</link>
        <description>SpringWolf

	*  &lt;https://github.com/springwolf/springwolf-core&gt;
	*  AsyncAPI Spec Spring Framework 구현</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/staticinjection?rev=1329015569&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-12T11:59:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:staticinjection</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/staticinjection?rev=1329015569&amp;do=diff</link>
        <description>Spring Static Field Injection

일반적인 static field

Spring에서 static field 에 객체를 주입하는 방법은, non-static setter를 만들어서 해당 메소드에 @Resource/@Autowired를 해주면 된다.

Spring annotations static injection tutorial의 코드를 참조하자면,</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/stopwatch?rev=1345457645&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-08-20T19:14:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:stopwatch</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/stopwatch?rev=1345457645&amp;do=diff</link>
        <description>Spring StopWatch

	*  Spring StopWatch example</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/test?rev=1626940913&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-22T17:01:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:test</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/test?rev=1626940913&amp;do=diff</link>
        <description>Springframework Test

	*  JUnit
	*  Java Unit Test
	*  SpringJUnit4ClassRunner
	*  database-rider
	*  Spring Test DBUnit
	*  Spring MVC UnitTest

@ContextHierarchy

	*  @org.springframework.test.context.ContextHierarchy
	*  컨텍스트간의 계층을 두어 설정. 이 안에 @ContextConfiguration을 계층적으로 선언

@ContextConfiguration 이중 지정문제</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/thymeleaf?rev=1684627520&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-21T09:05:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:thymeleaf</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/thymeleaf?rev=1684627520&amp;do=diff</link>
        <description>Thymeleaf

layout

	*  thyemleaf-leayout-dialect

참조

	*  Getting Started With Thymeleaf In Spring Boot - DZone Java</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/transaction?rev=1667972705&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-09T14:45:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:transaction</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/transaction?rev=1667972705&amp;do=diff</link>
        <description>Spring Transaction

	*  Spring Framework @EnableTransactionManagement
	*  SpringFramework Transaction Management Reference
	*  Transaction strategies: Understanding transaction pitfalls
	*  Transaction Propagation and Isolation in Spring @Transactional | Baeldung

내부 트랜잭션 메소드 호출 금지

	*  기본 프록시 모드에서는 클래스의 메소드에서 동일 클래스의 @Transactional 걸린 메소드를 호출하면 트랜잭션이 무시된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/uricomponentsbuilder?rev=1459212017&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-03-29T09:10:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:uricomponentsbuilder</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/uricomponentsbuilder?rev=1459212017&amp;do=diff</link>
        <description>UriComponentsBuilder

	*  UriComponentsBuilder를 통해 복잡한 파라미터를 가진 URL을 쉽게 생성할 수 있다.

기본적인 예


final String url = UriComponentsBuilder.fromHttpUrl(&quot;http://api.kwonnam.pe.kr/users/{userId}&quot;)
  .queryParam(&quot;startIndex&quot;, 5)
  .queryParam(&quot;limit&quot;, 15)
  .queryParam(&quot;cities&quot;, &quot;Seoul&quot;, &quot;Daejon&quot;, &quot;Jeonjoo&quot;, &quot;Busan&quot;)
  .buildAndExpand(12345L)
  .toUriString();

// http://api.kwonnam.pe.kr/users/12345?startIndex=5&amp;limit=15&amp;cities=Seoul&amp;cities=Daejon&amp;cities=Jeonjoo&amp;cities=Busan…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/utils?rev=1669893203&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-01T20:13:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:utils</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/utils?rev=1669893203&amp;do=diff</link>
        <description>Springframework Utils

	*  Spring Utils
	*  AnnotationUtils

DataAccessUtils

	*  DataAccessUtils
	*  여러건의 조회 결과를 확인하고 필요한 값만 얻거나 예외를 발생시킨다.
	*  singleResult : 컬렉션에 값이 1개이면 해당 객체, 없으면 null, 여러건이면 오류</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/validation?rev=1569556458&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-27T12:54:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:validation</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/validation?rev=1569556458&amp;do=diff</link>
        <description>Spring Framework Validation

	*  Java Validation을 사용할 수 있다.
	*  Spring 자체의 Validation 기법으로 Spring MVC 컨트럴로 파라미터 Validation을 할 수도 있다.
	*  Implementing Validation for RESTful Services with Spring Boot – Spring Boot Tutorial
	*  Spring 3의 jsr 303 지원
	*  Validation in Spring Boot
	*  Spring Validation Message Interpolation | Baeldung</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/vault?rev=1603520503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-24T15:21:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:vault</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/vault?rev=1603520503&amp;do=diff</link>
        <description>Spring Vault

	*  Spring Vault
	*  Spring Cloud Vault
	*  HashiCorp Vault 와 연동하여 설정 정보를 읽어올 수 있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/webclient?rev=1668752210&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-18T15:16:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:webclient</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/webclient?rev=1668752210&amp;do=diff</link>
        <description>WebClient

	*  Spring WebFlux 와 함께 사용할 RequestTemplat 대체 라이브러리
	*  see Fegin

Connection Pool

	*  reactor-netty를 사용함.
	*  ConnectionProvider를 보면 ReactorNetty.POOL_MAX_CONNECTIONS - reactor.netty.pool.maxConnections 시스템 프라퍼티 값으로 설정하거나 혹은 자동 계산됨. (자동 계산을 믿는게 나을 듯)</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/webflux?rev=1630972849&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-07T09:00:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:webflux</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/webflux?rev=1630972849&amp;do=diff</link>
        <description>Spring WebFlux

	*  Spring 5 의 Non Blocking IO/Reactive Web Framework
	*  Project Reactor 기반
	*  Web on Reactive Stack
	*  WebClient
	*  SpringBoot Test

Servlet과의 성능 차이

	*  Is Spring WebFlux a Myth?. Does it really outperform Spring… | by Gavin Fong | Aug, 2021 | Dev Genius
	*  응답속도가 매우 좋은 환경에서는 servlet보다 느릴 경우도 존재할 수 있지만, 고 부하에 응답속도 편차가 큰 일반적인 환경에서는 WebFlux/non-blocking의 성능이 압도적으로 좋고 실패율도 낮다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/websocket?rev=1545807993&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-26T16:06:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:websocket</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/websocket?rev=1545807993&amp;do=diff</link>
        <description>Spring WebSocket

	*  Spring Framework 과 WebSocket

참고

	*  Spring WebSocket 소개 | 기록은 재산이다</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/springframework/xmlconfig?rev=1442998243&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-23T17:20:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>springframework:xmlconfig</title>
        <link>https://kwonnam.pe.kr/wiki/springframework/xmlconfig?rev=1442998243&amp;do=diff</link>
        <description>Springframework XML Config

XSD 선언시 Version 을 넣어야 하나 말아야하나?

java - Spring configuration XML schema: with or without version? - Stack Overflow

Spring XML에서 XSD 선언시에는 Version을 넣지 않는 것이 좋다. spring.schemas 파일을 열어보면 버전이 없는 상황에서 자동으로 현재 jar 버전에 맞는 XSD를 매핑하도록 하고 있다.</description>
    </item>
</rdf:RDF>
