Soumettre la recherche
Mettre en ligne
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
•
104 j'aime
•
6,487 vues
Sungchul Park
Suivre
사내에서 진행 된 스프링 웹 애플리케이션 개발 과정 중 스프링 코어 부분의 두번째 발표 자료입니다.
Lire moins
Lire la suite
Logiciels
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 44
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
DK Lee
[Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아!
Arawn Park
Spring Framework Petclinic sample application
Spring Framework Petclinic sample application
Antoine Rey
EJB et WS (Montreal JUG - 12 mai 2011)
EJB et WS (Montreal JUG - 12 mai 2011)
Montreal JUG
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
탑크리에듀(구로디지털단지역3번출구 2분거리)
Resthub framework presentation
Resthub framework presentation
Sébastien Deleuze
React 소개 및 구현방법 Demo
React 소개 및 구현방법 Demo
Daesung Kim
A JCR View of the World - adaptTo() 2012 Berlin
A JCR View of the World - adaptTo() 2012 Berlin
Alexander Klimetschek
Recommandé
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
DK Lee
[Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아!
Arawn Park
Spring Framework Petclinic sample application
Spring Framework Petclinic sample application
Antoine Rey
EJB et WS (Montreal JUG - 12 mai 2011)
EJB et WS (Montreal JUG - 12 mai 2011)
Montreal JUG
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
탑크리에듀(구로디지털단지역3번출구 2분거리)
Resthub framework presentation
Resthub framework presentation
Sébastien Deleuze
React 소개 및 구현방법 Demo
React 소개 및 구현방법 Demo
Daesung Kim
A JCR View of the World - adaptTo() 2012 Berlin
A JCR View of the World - adaptTo() 2012 Berlin
Alexander Klimetschek
Scala Frustrations
Scala Frustrations
takezoe
Resthub lyonjug
Resthub lyonjug
Sébastien Deleuze
CodeIgniter 3.0
CodeIgniter 3.0
Phil Sturgeon
Dom selecting & jQuery
Dom selecting & jQuery
Kim Hunmin
Обзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScript
COMAQA.BY
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
탑크리에듀(구로디지털단지역3번출구 2분거리)
PHP MVC
PHP MVC
Reggie Niccolo Santos
Spring 4 final xtr_presentation
Spring 4 final xtr_presentation
sourabh aggarwal
Zend Framework 2 - presentation
Zend Framework 2 - presentation
yamcsha
Spring Framework - Data Access
Spring Framework - Data Access
Dzmitry Naskou
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
Javatwo2012 java frameworkcomparison
Javatwo2012 java frameworkcomparison
Jini Lee
the Spring 4 update
the Spring 4 update
Joshua Long
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
ekino
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSL
Sunghyouk Bae
The Naked Bundle - Tryout
The Naked Bundle - Tryout
Matthias Noback
vert.x 소개 및 개발 실습
vert.x 소개 및 개발 실습
John Kim
React
React
중운 박
Dropwizard
Dropwizard
Tetiana Saputo
Spring Framework - Validation
Spring Framework - Validation
Dzmitry Naskou
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
Sungchul Park
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
Sungchul Park
Contenu connexe
Tendances
Scala Frustrations
Scala Frustrations
takezoe
Resthub lyonjug
Resthub lyonjug
Sébastien Deleuze
CodeIgniter 3.0
CodeIgniter 3.0
Phil Sturgeon
Dom selecting & jQuery
Dom selecting & jQuery
Kim Hunmin
Обзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScript
COMAQA.BY
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
탑크리에듀(구로디지털단지역3번출구 2분거리)
PHP MVC
PHP MVC
Reggie Niccolo Santos
Spring 4 final xtr_presentation
Spring 4 final xtr_presentation
sourabh aggarwal
Zend Framework 2 - presentation
Zend Framework 2 - presentation
yamcsha
Spring Framework - Data Access
Spring Framework - Data Access
Dzmitry Naskou
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
Javatwo2012 java frameworkcomparison
Javatwo2012 java frameworkcomparison
Jini Lee
the Spring 4 update
the Spring 4 update
Joshua Long
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
ekino
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSL
Sunghyouk Bae
The Naked Bundle - Tryout
The Naked Bundle - Tryout
Matthias Noback
vert.x 소개 및 개발 실습
vert.x 소개 및 개발 실습
John Kim
React
React
중운 박
Dropwizard
Dropwizard
Tetiana Saputo
Spring Framework - Validation
Spring Framework - Validation
Dzmitry Naskou
Tendances
(20)
Scala Frustrations
Scala Frustrations
Resthub lyonjug
Resthub lyonjug
CodeIgniter 3.0
CodeIgniter 3.0
Dom selecting & jQuery
Dom selecting & jQuery
Обзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScript
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
PHP MVC
PHP MVC
Spring 4 final xtr_presentation
Spring 4 final xtr_presentation
Zend Framework 2 - presentation
Zend Framework 2 - presentation
Spring Framework - Data Access
Spring Framework - Data Access
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Javatwo2012 java frameworkcomparison
Javatwo2012 java frameworkcomparison
the Spring 4 update
the Spring 4 update
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSL
The Naked Bundle - Tryout
The Naked Bundle - Tryout
vert.x 소개 및 개발 실습
vert.x 소개 및 개발 실습
React
React
Dropwizard
Dropwizard
Spring Framework - Validation
Spring Framework - Validation
En vedette
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
Sungchul Park
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
Sungchul Park
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기
Sungchul Park
변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션
Sungchul Park
웹브라우저는 어떻게 동작하나?
웹브라우저는 어떻게 동작하나?
Joone Hur
웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)
Joone Hur
Spring MVC
Spring MVC
ymtech
자바8 람다 나머지 공개
자바8 람다 나머지 공개
Sungchul Park
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
beom kyun choi
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
Sungchul Park
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
Ji-Woong Choi
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
beom kyun choi
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수
Yeon Soo Kim
OAF Developer Guide 13.1.3
OAF Developer Guide 13.1.3
crwanare
잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁
Kenu, GwangNam Heo
Work With Engineer
Work With Engineer
Sungchul Park
전쟁사: 걸프전 Gulf war 분석
전쟁사: 걸프전 Gulf war 분석
Seung-taek Lim
3-1. css
3-1. css
JinKyoungHeo
Spring@mvc웹호스팅
Spring@mvc웹호스팅
J.H Ahn
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 자바8 람다 나머지 이야기 (박성철)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 자바8 람다 나머지 이야기 (박성철)
JiandSon
En vedette
(20)
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기
변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션
웹브라우저는 어떻게 동작하나?
웹브라우저는 어떻게 동작하나?
웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)
Spring MVC
Spring MVC
자바8 람다 나머지 공개
자바8 람다 나머지 공개
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수
OAF Developer Guide 13.1.3
OAF Developer Guide 13.1.3
잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁
Work With Engineer
Work With Engineer
전쟁사: 걸프전 Gulf war 분석
전쟁사: 걸프전 Gulf war 분석
3-1. css
3-1. css
Spring@mvc웹호스팅
Spring@mvc웹호스팅
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 자바8 람다 나머지 이야기 (박성철)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 자바8 람다 나머지 이야기 (박성철)
Similaire à 스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
Spring framework
Spring framework
Ajit Koti
What's New in Enterprise JavaBean Technology ?
What's New in Enterprise JavaBean Technology ?
Sanjeeb Sahoo
Spring introduction
Spring introduction
Lê Hảo
Spring talk111204
Spring talk111204
ealio
Spring framework
Spring framework
Rajkumar Singh
2-0. Spring ecosytem.pdf
2-0. Spring ecosytem.pdf
DeoDuaNaoHet
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010
Arun Gupta
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
Istanbul Tech Talks
Ejb examples
Ejb examples
vantinhkhuc
Spring training
Spring training
shah_d_p
Spring dependency injection
Spring dependency injection
srmelody
Spring
Spring
s4al_com
Spring talk111204
Spring talk111204
s4al_com
Spring Basics
Spring Basics
Dhaval Shah
Session 6 Tp6
Session 6 Tp6
phanleson
Spring framework in depth
Spring framework in depth
Vinay Kumar
CommercialSystemsBahman.ppt
CommercialSystemsBahman.ppt
KalsoomTahir2
Skillwise-Spring framework 1
Skillwise-Spring framework 1
Skillwise Group
Extending spring
Extending spring
Joshua Long
Spring framework IOC and Dependency Injection
Spring framework IOC and Dependency Injection
Anuj Singh Rajput
Similaire à 스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
(20)
Spring framework
Spring framework
What's New in Enterprise JavaBean Technology ?
What's New in Enterprise JavaBean Technology ?
Spring introduction
Spring introduction
Spring talk111204
Spring talk111204
Spring framework
Spring framework
2-0. Spring ecosytem.pdf
2-0. Spring ecosytem.pdf
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
Ejb examples
Ejb examples
Spring training
Spring training
Spring dependency injection
Spring dependency injection
Spring
Spring
Spring talk111204
Spring talk111204
Spring Basics
Spring Basics
Session 6 Tp6
Session 6 Tp6
Spring framework in depth
Spring framework in depth
CommercialSystemsBahman.ppt
CommercialSystemsBahman.ppt
Skillwise-Spring framework 1
Skillwise-Spring framework 1
Extending spring
Extending spring
Spring framework IOC and Dependency Injection
Spring framework IOC and Dependency Injection
Plus de Sungchul Park
애자일 안한 이야기
애자일 안한 이야기
Sungchul Park
Java null survival guide
Java null survival guide
Sungchul Park
자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법
Sungchul Park
Java.next
Java.next
Sungchul Park
자바 테스트 자동화
자바 테스트 자동화
Sungchul Park
자바 서버 애플리케이션 아키텍처 안티 패턴
자바 서버 애플리케이션 아키텍처 안티 패턴
Sungchul Park
Geeks at SK Planet
Geeks at SK Planet
Sungchul Park
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Sungchul Park
Java the good parts
Java the good parts
Sungchul Park
자바8 나머지 공개
자바8 나머지 공개
Sungchul Park
팀장 잔소리
팀장 잔소리
Sungchul Park
Open Source가 바꾼 자바
Open Source가 바꾼 자바
Sungchul Park
DDD 산책
DDD 산책
Sungchul Park
Plus de Sungchul Park
(13)
애자일 안한 이야기
애자일 안한 이야기
Java null survival guide
Java null survival guide
자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법
Java.next
Java.next
자바 테스트 자동화
자바 테스트 자동화
자바 서버 애플리케이션 아키텍처 안티 패턴
자바 서버 애플리케이션 아키텍처 안티 패턴
Geeks at SK Planet
Geeks at SK Planet
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Java the good parts
Java the good parts
자바8 나머지 공개
자바8 나머지 공개
팀장 잔소리
팀장 잔소리
Open Source가 바꾼 자바
Open Source가 바꾼 자바
DDD 산책
DDD 산책
Dernier
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
BradBedford3
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Cizo Technology Services
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
Philip Schwarz
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
Sujith Sukumaran
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
Marharyta Nedzelska
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
confluent
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Angel Borroy López
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
preethippts
MYjobs Presentation Django-based project
MYjobs Presentation Django-based project
AnoyGreter
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
BrainSell Technologies
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
Hironori Washizaki
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Mater
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
OnePlan Solutions
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
Velvetech LLC
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
jennyeacort
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
Lionel Briand
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
Alina Yurenko
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Rob Geurden
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Drew Moseley
Dernier
(20)
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
MYjobs Presentation Django-based project
MYjobs Presentation Django-based project
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
1.
스프링 프레임워크 코어 Java
구성을 활용한 스프링 코어 사용 박성철
2.
목차 기본 빈(Bean) 정의 오토
와이어 / 컴포넌트 자동 탐색 AOP 설정
3.
기본 빈(Bean) 정의
4.
빈 정의 방법 XML
구성 가장 오래된 빈 설정 방법 메타 정보의 완벽한 분리 자바 구성 어노테이션 방식과 의미론적 일관성 언어 지원 타입 안전성 IDE 그루비 빈 구성 아직 초기 단계 자바 구성보다 가독성 개선(그루비 “우리의 선택”
5.
@Configuration @Configuration
6.
public
7.
class
8.
AppConfig
9.
{
10.
11.
12.
13.
…⋯
14.
} “이 클래스는 빈을 정의하는
객체도 스프링 빈
15.
빈 생성: @Bean @Configuration
16.
public
17.
class
18.
AppConfig
19.
{
20.
21.
22.
23.
@Bean
24.
25.
26.
27.
public
28.
AcmeBean
29.
acmeBean()
30.
{
31.
32.
33.
34.
35.
36.
37.
return
38.
new
39.
AcmeBean();
40.
41.
42.
43.
}
44.
} “이 메서드는 @Bean(name=“acmeBean”)
45.
@Bean(name={“acmeBean”,
46.
“superBean”}) 명시적인 빈 이름
지정 빈 별명 지정
47.
스프링 IoC 컨테이너 BeanFactory:
기본 빈 컨테이너 ApplicationContext 하부 타입 AOP, 국제화, 이벤트 발생 기업용 애플리케이션에 필요한 기능 추가
48.
ApplicationContext 종류 AnnotationConfigApplicationContext AnnotationConfigWebApplicationContext ClassPathXmlApplicationContext FileSystemXmlApplicationContext GenericApplicationContext GenericGroovyApplicationContext GenericWebApplicationContext GenericXmlApplicationContext ResourceAdapterApplicationContext XmlPortletApplicationContext XmlWebApplicationContext 우리가 사용할 컨테이너
구현체
49.
ApplicationContext 시작 ctx
50.
=
51.
new
52.
AnnotationConfigApplicationContext(AppConfig ! 또는 ! ctx
53.
=
54.
new
55.
AnnotationConfigApplicationContext( ctx.register(AppConfig.class,
56.
AnotherAppConfig.class); ctx.register(YetAnotherAppConfig
57.
의존 관계 주입 매개변수
전달 @Bean
58.
public
59.
Teller
60.
teller(ContentProvider
61.
provider
62.
return
63.
new
64.
StdOutTeller(provider }
65.
! @Bean
66.
public
67.
ContentProvider
68.
contentProvider()
69.
{
70.
71.
return
72.
new
73.
HelloWorldProvider();
74.
}
75.
의존 관계 주입 메서드
호출 @Bean
76.
public
77.
Teller
78.
teller()
79.
{
80.
81.
return
82.
new
83.
StdOutTeller(contentProvider() }
84.
! @Bean
85.
public
86.
ContentProvider
87.
contentProvider()
88.
{
89.
90.
return
91.
new
92.
HelloWorldProvider();
93.
}
94.
구성 결합: @Import @Configuration
95.
@Import(SubAppConfig.class)
96.
public
97.
class
98.
MainAppConfig
99.
{
100.
101.
102.
103.
…⋯
104.
}
105.
! @Configuration
106.
public
107.
class
108.
SubAppConfig
109.
{
110.
111.
112.
113.
…⋯
114.
}
115.
빈 범위: @Scope ConfigurableBeanFactory SCOPE_SINGLETON
“singleton” SCOPE_PROTOTYPE “prototype” WebApplicationContext SCOPE_REQUEST “request” SCOPE_SESSION “session” SCOPE_GLOBAL_SESSION “globalSession” SCOPE_APPLICATION “application @Bean @Scope(“prototype”) public
116.
ContentProvider
117.
contentProvider()
118.
{
119.
120.
return
121.
new
122.
HelloWorldProvider();
123.
}
124.
빈 범위의 종류 ApplicationContext singleton
prototype request session getBean() 항상동일한빈반환 매번새로운빈반환 웹요청안에동일한빈반환 웹세션안에동일한빈반환 표준 범위 웹 확장 범위
125.
@Bean(iniMethod=“init”,
126.
destoryMethod=“dispose”)
127.
public
128.
AcmeBean
129.
acmeBean()
130.
{
131.
132.
133.
134.
135.
136.
137.
return
138.
new
139.
AcmeBean();
140.
} @Bean ! initMethod destoryMethod 빈을 생성한 후에
init() 메서드를 호출하고 소멸 전에 dispose() 빈 초기화/정리 @Bean의 속성 사용
141.
빈 초기화/정리 JSR-250 사용 @PostConstruct
142.
public
143.
void
144.
init()
145.
{
146.
147.
148.
149.
…⋯
150.
}
151.
! @PreDestory
152.
public
153.
void
154.
dispose()
155.
{
156.
157.
158.
159.
…⋯
160.
} 빈의 초기화와 정리
메서드에 직접 ! @PostConstruct @PreDestory 빈을 생성한 후에 init() 메서드를 호출하고 소멸 전에 dispose()
161.
자동 구성
162.
자동 와이어링 스프링 고유 @Autowired:
163.
@Qualifier:
164.
JSR-330 Dependency Injection
for Java @Inject:
165.
@Named:
166.
@Qualifier:
167.
JSR @Resource:
168.
169.
JSR-330 dependency
170.
171.
172.
173.
174.
groupIdjavax.inject/groupId
175.
176.
177.
178.
179.
artifactIdjavax.inject/artifactId
180.
181.
182.
183.
184.
version1/version
185.
/dependency
186.
@Autowired vs @Inject spring
JSR-330 비고 @Autowired @Inject @Inject에는 required 속성이 없음 @Component @Named @Scope @Singleton JSR-330 표준에선 prototype이 기본이지만 스프링에서는 singleton을 기본으로 적용 @Qualifier @Named 빈 이름 지정 @Qualifier @Qualifier 자작 한정 어노테이션 제작 @Value N/A @Required N/A @Lazy N/A
187.
자동 와이어링 public
188.
class
189.
Foo
190.
{
191.
192.
193.
@Inject
194.
195.
196.
private
197.
Bar
198.
bar;
199.
200.
201.
…⋯
202.
} @Bean
203.
public
204.
Foo
205.
foo()
206.
{
207.
208.
return
209.
new
210.
Foo();
211.
}
212.
! @Bean
213.
public
214.
Bar
215.
bar()
216.
{
217.
218.
return
219.
new
220.
Bar();
221.
} 빈 생성/등록 스프링 IoC
컨테이너 주 입 빈 생성
222.
자동 와이어링 이름
지정 public
223.
class
224.
Foo
225.
{
226.
227.
228.
@Inject
229.
230.
231.
@Named(“baar”)
232.
233.
234.
private
235.
Bar
236.
bar;
237.
238.
} public
239.
class
240.
Bar{
241.
242.
243.
244.
…⋯
245.
} public
246.
class
247.
Baar
248.
extends
249.
Bar{
250.
251.
252.
253.
…⋯
254.
} public
255.
class
256.
Barr
257.
extends
258.
Bar{
259.
260.
261.
262.
…⋯
263.
}
264.
자동 빈 탐색 @ComponentScan @Configuration
265.
@ComponentScan(basePackages=“com.fupfin.acmebomb.domain”)
266.
public
267.
class
268.
AppConfig
269.
{
270.
271.
272.
273.
…⋯
274.
} 지정한 패키지 밑의
모든 빈을 자동으로 찾아서 애플리케이션 컨텍스트에 등록 자동?
275.
빈 지정 @Component, @Named @Component
276.
public
277.
class
278.
ThisIsBean
279.
{
280.
281.
282.
283.
…⋯
284.
} “이 객체는 스프링
빈입니다.” @Component JSR-330
285.
빈 표시 어노테이션 @Component @Service @Controller @Repository 비즈니스
로직을 처리하는 컴포넌트 애플리케이션 아키텍처 참 데이터를 읽고 쓰는 컴포넌트 DataAccessException 애플리케이션 아키텍처 참 MVC 상속 상속 상속 @Configuration
286.
@ComponentScan 속성 • basePackageClasses
287.
• basePackages
288.
=
289.
value
290.
• includeFilters,
291.
excludeFilters
292.
• FilterType • nameGenerator
293.
• resourcePattern
294.
• useDefaultFilters @ComponentScan(basePackageClasses
295.
=
296.
BeansPackageMarker.class,
297.
298.
299.
300.
301.
302.
303.
304.
305.
지연 생성: @Lazy 의존
빈 지정: @DependsOn @Service
306.
@Lazy
307.
@DependsOn({“AnotherService”,
308.
“YetAnotherService”})
309.
public
310.
class
311.
MyServiceImpl
312.
implements
313.
MyService
314.
{
315.
316.
317.
318.
…⋯
319.
} “정말 필요할 때까지는
빈을 생성하지 않아요.” “이 빈들을 먼저 생성해야 해요.”
320.
관점 중심 프로그래밍 (AOP)
321.
AOP OOP 횡단 관심사의 모듈화 DI 스프링은
동적 프록시 기반의 JDK @AspectJ
322.
AspectJ 방식 AOP
활성화 @EnableAspectJAutoProxy @Configuration
323.
@ComponentScan(basePackages=com.fupfin.aop)
324.
@EnableAspectJAutoProxy
325.
public
326.
class
327.
AppConfig
328.
{
329.
330.
331.
332.
…⋯
333.
} dependency
334.
335.
336.
groupIdorg.aspectj/groupId
337.
338.
339.
artifactIdaspectjweaver/artifactId
340.
341.
342.
version1.5.4/version
343.
/dependency
344.
AOP 모듈 정의:
@Aspect 해당 클래스가 일반 자바 코드를 @Aspect
345.
@Component public
346.
class
347.
AcmeAspect
348.
{
349.
350.
351.
352.
…⋯
353.
} 자동 등록되도록 하려고
추가함
354.
어드바이스 정의: @Advice 대상 @Aspect
355.
public
356.
class
357.
AcmeAspect
358.
{
359.
360.
361.
@
362.
363.
364.
public
365.
void
366.
doSomeBefore()
367.
{
368.
369.
370.
371.
372.
373.
374.
System.out.println(System.currentTimeMillis
375.
376.
377.
}
378.
} 적용 시점 기능 대상 (포인트컷)
379.
@Advice 시점 종류 @Before @After @AfterReturning @AfterThrowing @Around
380.
@Before @After 조인
포인트 속성 외에 특별한 속성 없음 메서드 매개변수에 JoinPoint 조인포인트 정보 전달 @Before(“execution(*
381.
set*(..)) public
382.
void
383.
doSomeBefore()
384.
{
385.
386.
387.
388.
…⋯
389.
}
390.
! @After(“execution(*
391.
set*(..)) public
392.
void
393.
doSomeAfter
394.
395.
396.
…⋯
397.
} 조인포인트 정보
398.
@AfterReturning @AfterThrowing @AfterReturning의 returning 속성에
반환값을 받는 매개변수 지정 가능 @AfterThrowing의 throwing 가능 @AfterReturning(pointcut=“execution(*
399.
set*(..)) public
400.
void
401.
doSomeAfter(Object
402.
retVal)
403.
{
404.
405.
406.
407.
…⋯
408.
}
409.
! @AfterThrowing(pointcut=“execution(*
410.
set*(..)) public
411.
void
412.
doSomeAfter(Exception
413.
ex)
414.
{
415.
416.
417.
418.
…⋯
419.
} 반환 값 예외
420.
@Around ProceedingJoinPoint 타입의 매개변수에 ProceedingJoinPoint 실행할
수 있도록 함 @Around(pointcut=“execution(*
421.
set*(..)) public
422.
Object
423.
doSomethingAround(ProceedingJoinPoint
424.
thisJoinPoint)
425.
426.
427.
//
428.
do
429.
something
430.
before
431.
call
432.
target
433.
method
434.
435.
436.
437.
Object
438.
retval
439.
=
440.
thisJoinPoint.proceed();
441.
442.
443.
444.
//
445.
do
446.
something
447.
after
448.
calling
449.
target
450.
method
451.
452.
453.
454.
…⋯
455.
456.
457.
458.
return
459.
retval;
460.
} 대상 메서드를 실행하고반환
값을 받음 반환 값 반환
461.
대상 메서드 지정
분리: @Pointcut @Pointcut(“execution(*
462.
*(..))”)
463.
public
464.
void
465.
ifService()
466.
{}
467.
! @Before(pointcut=“ifService()”)
468.
public
469.
void
470.
doSomeBefore()
471.
{
472.
473.
474.
475.
…⋯
476.
}
477.
포인트컷 표현 execution within this target args @target @args @within @annotation
478.
execution execution( [throws
479.
public, private 반환값 패키지와 클래스
이름 매서드 이름 매개변수 예외 execution(public
480.
*
481.
*(..)) execution(*
482.
set*(..)) execution(*
483.
com.xyz.service..*
484.
기타
485.
@Enable* @EnableTransactionManagement @EnableCaching @EnableWebMvc @EnableScheduling @EnableAsync @EnableAspectJAutoProxy @EnableLoadTimeWeaving @EnableSpringConfigured
486.
@PropertySource @Configuration
487.
@PropertySource(value
488.
=
489.
classpath:META-INF/config.xml)
490.
public
491.
class
492.
PropertySourcesConfiguration
493.
{
494.
}
495.
! ! @Configuration
496.
@PropertySource(value
497.
=
498.
classpath:META-INF/config.properties)
499.
public
500.
class
501.
PropertySourcesConfiguration
502.
{
503.
} “XML 파일로 “Properties 파일로
504.
@Profile @Configuration class
505.
DataAccessConfig
506.
{
507.
!
508.
509.
@Configuration
510.
511.
512.
@Profile({JPA})
513.
514.
515.
public
516.
static
517.
class
518.
JPAConfig
519.
{
520.
…⋯
521.
}
522.
!
523.
524.
@Bean
525.
526.
527.
@Profile(TEST
528.
529.
public
530.
DataSource
531.
embeddedDatabase ! } “JPA
532.
@Profile AnnotationConfigApplicationContext
533.
applicationContext
534.
=
535.
new
536.
A…⋯Context();
537.
applicationContext.register(DataAccessConfig.class);
538.
! ConfigurableEnvironment
539.
environment
540.
=
541.
applicationContext.getEnvironment();
542.
environment.setActiveProfiles(Profiles.JPA,
543.
Profiles.TEST “JPA, TEST
Télécharger maintenant