Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-PouchkineGenevaJUG
Java EE 6 est loin d'être un simple rafraichissement d’une technologie que certains trouvent vieillissante. Avec des évolutions majeures pour EJB, JPA, servlet, et JSF, avec l’arrivée d’une injection unifiée avec CDI, le rajout de JAX-RS ou encore l’arrivée de BeanValidation il devient quasi inutile de rajouter des bibliothèques externes.
Avec un support complet de Java EE 6, des fonctions orientées développeur, de multiples outils d’administration, un mode embarqué, une modularité basée sur OSGi.... La liste des fonctionnalités de GlassFish 3 sonne comme les promesses d’autres serveurs d’applications. A vous de voir comment tout ceci est utilisable pour vous, dès aujourd’hui.
Cette présentation intègrera donc une bonne partie des nouveautés de la plate-forme Java EE 6, des démonstrations et une feuille de route sur l’avenir du projet GlassFish (3.1 et au delà).
Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-PouchkineGenevaJUG
Java EE 6 est loin d'être un simple rafraichissement d’une technologie que certains trouvent vieillissante. Avec des évolutions majeures pour EJB, JPA, servlet, et JSF, avec l’arrivée d’une injection unifiée avec CDI, le rajout de JAX-RS ou encore l’arrivée de BeanValidation il devient quasi inutile de rajouter des bibliothèques externes.
Avec un support complet de Java EE 6, des fonctions orientées développeur, de multiples outils d’administration, un mode embarqué, une modularité basée sur OSGi.... La liste des fonctionnalités de GlassFish 3 sonne comme les promesses d’autres serveurs d’applications. A vous de voir comment tout ceci est utilisable pour vous, dès aujourd’hui.
Cette présentation intègrera donc une bonne partie des nouveautés de la plate-forme Java EE 6, des démonstrations et une feuille de route sur l’avenir du projet GlassFish (3.1 et au delà).
In this is epaper we discuss what is a Mutli-Echelon Inventory Optimization system and how it works. You will find out why its revolutionizing the art and science of supply chain inventory planning.
Das vorliegende Dokument beschreibt die Integration von Apple Mac OS X Systemen sowie iPhone- und iPod touch-Geräten in Unternehmen mit Citrix Technologien.
Information Management Strategy from Business and IT ViewpointsMarina Kerbel
This presentation shows an approach for developing and implementing an enterprise-wide Information Management Strategy. It demonstrates how to bridge the gap between IT and the business, giving IT the critical business buy-in it needs to move forward, and ensuring that the business gets results from the enterprise data. It also gives some examples of how the business has used the enterprise data to get results.
Stewart Jones, Director of Business Development Redstone Converged Solutions Ltd gives an overview of Redstone's open access FTTx network proposition in the Next Generation Action Workshop at NextGen 09 in Leeds on 16 and 17 November 2009
Understanding Social Media’s Impact on BusinessJared Degnan
See how practitioners, creatives and consumers view social media differently and how you can bridge the gap to explain the impact social media can have on marketing, consumer insights, service recovery and more. Produced by a team of MBAs led by Jared Degnan (http://jareddegnan.com).
This report was made possible by and produced in conjunction with BoldMouth Inc. (http://boldmouth.com) who has generously made this report available to the social media community.
In this is epaper we discuss what is a Mutli-Echelon Inventory Optimization system and how it works. You will find out why its revolutionizing the art and science of supply chain inventory planning.
Das vorliegende Dokument beschreibt die Integration von Apple Mac OS X Systemen sowie iPhone- und iPod touch-Geräten in Unternehmen mit Citrix Technologien.
Information Management Strategy from Business and IT ViewpointsMarina Kerbel
This presentation shows an approach for developing and implementing an enterprise-wide Information Management Strategy. It demonstrates how to bridge the gap between IT and the business, giving IT the critical business buy-in it needs to move forward, and ensuring that the business gets results from the enterprise data. It also gives some examples of how the business has used the enterprise data to get results.
Stewart Jones, Director of Business Development Redstone Converged Solutions Ltd gives an overview of Redstone's open access FTTx network proposition in the Next Generation Action Workshop at NextGen 09 in Leeds on 16 and 17 November 2009
Understanding Social Media’s Impact on BusinessJared Degnan
See how practitioners, creatives and consumers view social media differently and how you can bridge the gap to explain the impact social media can have on marketing, consumer insights, service recovery and more. Produced by a team of MBAs led by Jared Degnan (http://jareddegnan.com).
This report was made possible by and produced in conjunction with BoldMouth Inc. (http://boldmouth.com) who has generously made this report available to the social media community.
패스트캠퍼스의 안드로이드 앱 개발 입문 캠프는, 3주간의 빡센 자바 프로그래밍 훈련 기간을 거쳐 남은 5주동안 실습 예제 중심으로 빠르게 안드로이드 앱 개발을 경험해보는 8주 강의입니다.
- 강사님과 실시간 질문 답변을 주고받을 수 있는 온라인 채널 제공
- 앱 마켓에 런칭하며 필요한 필수 지식까지 전수
- 8주 강의가 끝나도 계속 질문 답변 채널을 닫지 않는, 그야말로 평생 교육
- 개별 매니저가 수강생 한 분씩 케어하는 시스템
으로 인해 많은 사랑을 받고 있습니다. 앞으로도 많은 관심 부탁드려요!
2. 처음 떠오르는 코드는?
insert into ORDER Order order = new Order();
(..,ordererid,sa_zipcode,
sa_address1,..) AddressInfo shippingAddress =
values (?,?,?..); orderRequest.
getShippingAddress();
insert into ORDERED_ITEM order.setShippingAddress(
(..,itemid,quantity,price..) shippingAddress);
values (?,?,?...);
Item item = getItem(itemId);
order.addOrderedItem(
createOrderedItem(price, item));
saveOrder(order);
2
3. 처음 떠오르는 코드는?
select Order order = orderRepository.
orderid, ordererid, findOrder(orderId);
sa_zipcode, sa_address1, .., User orderer = order.getOrderer();
u.name
from ORDER o, USER u, ShippingAddress address =
where o.ordererid = u.userid .. order.getShppingAddress();
select * from ORDERED_ITEM List<OrderedItem> itemList =
where orderid = ? .. order.getOrderedItemList();
PaymentInfo paymentInfo =
order.getPaymentInfo();
3
8. 관계형 DB != 객체 지향
관계형 데이터 객체
연관 FK를 통한 단순 연관 양방향 연관.
List, Map 등 풍부한 연관 표현
상속 지원하지 않음 상속/구현을 통한 다형성 제공
세밀함 Value 타입 졲재하지 않음 Value 타입 통한 세밀한 설계
[DBMS에 특화]
8
10. ORM과 매퍼 솔루션들
Hibernate
iBATIS JPA
JDO
Torque
단순 매퍼 객체 지향 지원
10
11. 하이버네이트인 이유
• 쉬운 사용 방법
– 설정 파일을 통한 매핑 관리
• 객체 지향의 다양한 특징 지원
– 다양한 연관 매핑 지원 (1-1, 1-n, n-1, n-m)
– 상속 지원
• 다양한 테이블 구조에 대한 매핑 지원
• 객체 기반 쿼리 지원: HQL, Criteria
• 성능 향상 기법 제공
– 2차 캐시, Lazy Loading 등
11
12. ORM 도구가 필요한 이유
객체지향모델링
코드품질향상
생산성 증가
단순 코드 반복 제거
자체개발 어려움
pstmt.setString(1,bean.getX());
pstmt.setString(2,bean.getY());
pstmt.setSTring(3,bean.getZ());
12
16. 클래스 작성법
final class가 아님
public class Order implements Serializable {
private Integer id; PK와 매핑되는
프로퍼티 제공
private Date registerDate;
public Order() {
기본 생성자 제공
}
public Date getRegisterDate() { … }
getter/setter 제공
public void setRegisterDate() { … }
public boolean equals(Object o) { … }
public int hashcode() { … }
}
16
17. 하입네이트 설정 파일 작성
<hibernate-configuration>
<session-factory>
<property name=“connection.driver_class”>..</property>
<property name=“connection.url”>jdbc:mysql:…</property> DB 연결
<property name=“hibernate.c3p0.min_size”>5</property> 설정
…
<mapping resource=“Order.hbm.xml” /> 매핑 설정
<mapping resource=“Item.hbm.xml” /> 파일 지정
</session-factory>
</hibernate-configuration>
17
19. 기본 CRUD API: save()
Order order = new Order();
order.addOrderedItem(..);
order.setShppingAddress(shppingAddress);
order.setOrderer(orderedUser);
session.save(order);
19
20. 기본 CRUD API: get()
Integer id = …;
Order order = (Order)session.get(Order.class, id);
order.getOrderedItemList();
User orderer = order.getOrderer();
20
21. 기본 CRUD API: update()
Order order = (Order)session.get(…)
order.setShppingAddress(newAddress);
session.update(order);
21
22. 기본 CRUD API: delete()
Order order = (Order)session.get(…)
session.delete(order);
22
23. 쿼리 API
• 객체 기반 조회 기법 제공
– HQL : SQL과 비슷한 쿼리를 이용한 조회
Query query = session.createQuery(“from Order where id = :id”);
query.setInteger(“id”, id);
List orderList = query.list();
– Criteria : API를 이용한 조회
Criteria crit = session.createCriteria(Order.class);
crit.add(Restrictions.eq(“id”, id));
List orderList = crit.list();
23
24. 영속성 처리의 투명함
(Transparent Persistence)
tx = session.beginTransaction();
Order order =
(Order)session.get(Order.class, id);
order.setState(OrderState.CANCEL);
tx.commit();
24