1? ( )J2EE Spring 2 3 spring Spring Spring Spring JDBC Spring Spring Spring Spring Spring 2003 2 Spring 2002 Expert One-on-One J2EE Designe and Develo



Similar documents

PowerPoint プレゼンテーション

Spring Framework 2.0  デファクトスタンダードDIコンテナの現在と未来

Gartner Day

Microsoft PowerPoint - JavaFesta.ppt

Oracle9i JDeveloperによるWebサービスの構築

2 Java 35 Java Java HTML/CSS/JavaScript Java Java JSP MySQL Java 9:00 17:30 12:00 13: 項目 日数 時間 習得目標スキル Java 2 15 Web Java Java J

untitled

ユニット・テストの概要

はじめに

JB_weblogic_guide.indd

tkk0408nari


JavaFest04.PDF

9iAS_DEV.PDF

B2-Servlet-0112.PDF

I. EspressReport 100%Java JSP API II. EspressReport Report Designer Report Designer - Report Designer Web Java Web Web Report Designer import java.awt

"CAS を利用した Single Sign On 環境の構築"

1 Dependency Injection glue glue glue glue glue GluonJ GluonJ glue Dependency Injection Aspect-Oriented Programming Meets Dependency Injection Rei Ish

Q&A集


untitled

Oracle JDeveloper 10g ADF Creation Date: Jul 07, 2004 Last Update: Jul 08, 2004 Version 1.0

Oracle Application Server 10g Release 3(10.1.3)- アジャイル・エンタープライズ(俊敏な企業)のためのデータ・アクセス

Oracle9i JDeveloper R9.0.3 チュートリアル

DIコンテナ 前 回 ご 説 明 したSpring DIコンテナに 共 通 するこ とは 依 存 を 注 入 することによってシステム 内 に 存 在 するオブジェクト 同 士 の 結 びつきを 緩 くすることで あり そのための 仕 組 み 提 供 を 意 味 する [Spring のDIコンテナ

PowerPoint Presentation

rmi.book

2015-Springのハナシ

V8.1新規機能紹介記事

58.pdf

untitled

untitled

JAVA H13 OISA JAVA 1

新・明解Java入門

[1]...1 [2]...1 [3] Java Web...3 [4] Java Web...18 [

untitled

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

Web Servlet/JSP JSP

Javaで体験するスクリプト言語の威力

BC4J...4 BC4J Association JSP BC4J JSP OC4J

Part1 159 a a

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

第13回講義

untitled

java_servlet2_見本

はじめに

Oracle Application Server 10g Oracle Developer Suite 10g 機能概要 Oracle JDeveloper Oracle JDeveloper 10g Oracle Application Development Framework ADF J2E

Oracle Application Server 10g R3 新機能概要

Java演習(4) -- 変数と型 --

II 1 p.1 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway Interface Web HTML Web Web CGI CGI CGI Perl, PHP C JavaScript Web CGI HTML 1.2 Servlet Java

Client client = ClientBuilder.newClient(); WebTarget webtarget = client.target(" " "); Invo

HTML/JSP/Servlet... 7 JSP... 7 Servlet Struts Struts Struts FormBean LoginForm


S2Dao入門

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

PowerPoint プレゼンテーション

WebOTXマニュアル

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

A B 1: Ex. MPICH-G2 C.f. NXProxy [Tanaka] 2:

s

intra-mart im-J2EE Framework

5-1- 基 開 発 フレームワークに 関 する 知 識 現 在 普 及 が 期 待 されている 開 発 フレームワークの 実 際 の 開 発 運 用 Ⅰ. 概 要 の 際 に 必 要 な 管 理 知 識 手 法 の 種 類 と 特 徴 内 容 を 理 解 し 必 要 なノ ウハウを 実 務 レベル


Java DataBase Connectivity Sun ONE Studio 4 Sun Microsystems, Inc Network Circle Santa Clara, CA U.S.A Part No

Javaと マルチスレッド

(Microsoft PowerPoint - ClickFramework.ppt [\214\335\212\267\203\202\201[\203h])

サーブレット (Servlet) とは Web サーバ側で動作する Java プログラム 通常はapache 等のバックグラウンドで動作する Servletコンテナ上にアプリケーションを配置 代表的な Servlet コンテナ Apache Tomcat WebLogic WebSphere Gla

2

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

PowerPoint Presentation

スライド 1

Microsoft Word - migrateto10g2.doc

Oracle9iAS Containers for J2EEチュートリアル

ScalaFukuoka 2017 Backlog.key

JPA & Kuina-Dao入門

1 ex01.sql ex01.sql ; user_id from (select user_id ;) user_id * select select (3+4)*7, SIN(PI()/2) ; (1) select < > from < > ; :, * user_id user_name

<4D F736F F D E675F A F816A C815B F815B834E2E646F63>

Microsoft PowerPoint - 4-MySQL50_JDBC_failover.ppt

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

Web 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse

: : : TSTank 2

ストラドプロシージャの呼び出し方

1 JBoss Seam と Embedded EJB3 で見る 次世代の Java EE アプリケーション開発 株式会社カサレアルプロフェッショナルサービスセンター阿島哲夫岡本充洋

CAC

// JDBC // CallableStatement cs = null; try { cs = conn.preparecall("{call DUMMY_PROC(?,?)}"); cs.setstring(1, "This is a test"); cs.registeroutparame

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

コンテナでテストをまわせ! Java EE への自動テストの導入 1 小西高之 JBoss Technical Support Engineer Red Hat K.K.

オブジェクト脳のつくり方

intra-mart im-J2EE Framework

Java (5) 1 Lesson 3: x 2 +4x +5 f(x) =x 2 +4x +5 x f(10) x Java , 3.0,..., 10.0, 1.0, 2.0,... flow rate (m**3/s) "flow

intra-mart WebPlatform/AppFramework

Seasar.NET入門

WTM2019SingleSignOn

Cubby in Action

SpringSecurity

SecureAssist Rulepack Configurator 利用ガイド Version 3.0 対応版 パッケージのダウンロード ルールパックの説明 カスタムルールの作成

T2でつなごう! -つなぐつながるWebフレームワーク「T2」の紹介

intra-mart im-JavaEE Framework

TopLink È... 3 TopLink...5 TopLink åø... 6 TopLink å Workbench O/R ~... 8 Workbench À ~... 8 Foundation Library å... 8 TopL

Transcription:

Spring http://www.theserverside.com/articles/article.tss?l=springframework 2003/12 Spring Spring J2EE 1? 1 2 Spring 1 3 Spring? 3 3.1.................... 3 3.2 Inversion of control.................. 4 3.3 XmlBeanFactory...................... 7 3.4 JDBC.......... 11 3.5 O/R...................... 15 3.6...................... 17 3.7 AOP................................ 18 3.8 MVC................... 22 3.9 EJB.......................... 24 3.10 EJB............................ 25 3.11............................ 28 3.12 Spring?................... 29 3.13........................... 29 4 29 4.1........................... 30 4.2........................... 31 1

1? ( )J2EE Spring 2 3 spring Spring Spring Spring JDBC Spring Spring Spring Spring Spring 2003 2 Spring 2002 Expert One-on-One J2EE Designe and Development Expert One-on-One J2EE Spring 2000 2003 1 Spring SourceForge 6 10 2 Spring Spring 1

EJB Spring Struts J2EE API Spring Spring Spring Javadoc Spring JavaBean Inversion of Control( ) Spring Spring SpringAPI Spring Spring Spring Spring Spring EJB POJO EJB Spring EJB Spring EJB Web Spring EJB AOP JTA Spring JDBC Hibernate O/R 2

Spring 3 Spring? Spring 3.1 Spring Spring Spring J2EE Spring Spring (Commons Logging Commons DBCP) O/R Hibernate JDO Spring JTA Spring Struts MVC Web IoC AOP Spring (Spring Spring Expert One-on-One J2EE Design and Development Inversion of Control 3

Spring WebLogic Tomcat Resin JBoss WebShere 3.2 Inversion of control Spring org.springframework.beans JavaBeans Spring 2 : 1 : org.springframework.beans.factory XmlBeanFactory: XML DTD ListableBeanFactoryImpl: POJO( JavaBean ) 1 AOP 4

( EJB ) BeanFaftory JavaBeans Expert One-on-One J2EE Design and Development 4 ServerSide PDF (http://www.theserverside.com/articles/article.jsp?l=rodjohnsoninterview) BeanFactory Spring Inversion of Control ( EJB )Spring BeanFactory ) Inversion of Control! IoC EJB X IoC X (JavaBean ) XML IoC Spring IoC JavaBean setter EJB JNDI JavaBean Java JUnit IoC 5

IoC IoC API IoC Spring Jakarta Commons DBCP DataSource Spring IoC API JavaBean Spring IoC EJB IoC Spring IoC J2EE IoC IoC Apache Avalon PicoContainer HiveMind Avalon Avalon IoC PicoContainer JavaBean Spring 1 ( Java ) Spring PicoContainer IoC Spring (http://www.springframework.org/docs/ lightweight container.html) The Spring Framework - A Lightweight Container PicoContainer Spring Swing (EJB ) 6

Spring Spring Spring Spring IoC IoC EJB Spring ApplicationContext 3.3 XmlBeanFactory Spring bean definition XML Spring XML <beans> <beans> 1 <bean> ID J2EE 3 J2EE DAO DAO Jakarta Commons DBCP BasicDataSource ( )Java-Bean Spring 7

close Spring destroymethod BasicDataSource Spring <beans> <bean id="mydatasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname"> <value>com.mysql.jdbc.driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/mydb</value> </property> <property name="username"> <value>root</value> </property> </bean> </beans> BasicDataSource <value> Spring JavaBean DataSource DAO <ref> <bean id="exampledataaccessobject" class="example.exampledataaccessobject"> <property name="datasource"><ref bean="mydatasource"/></property> </bean> DAO int (exampleparam) <bean id="examplebusinessobject" class="example.examplebusinessobject"> <property name="dataaccessobject"><ref bean="exampledataaccessobject"/></property> <property name="exampleparam"><value>10</value></property> </bean> </beans> Spring Pico- Container autowire PicoContainer 8

(Spring ) autowire <bean id="examplebusinessobject" class="example.examplebusinessobject" autowire="bytype"> <property name="exampleparam"><value>10</value></property> </bean> Spring examplebusinessobject datasource datasource exampleparam Autowire CVS Spring 1.0M2(2003/10/20 ) 1.0M1 Java XML Java mydatasource XML Spring JNDI XML Java Spring EJB Spring public class ExampleBusinessObject implements MyBusinessObject { private ExampleDataAccessObject dao; private int exampleparam; 9

public void setdataaccessobject(exampledataaccessobject dao) { this.dao = dao; public void setexampleparam(int exampleparam) { this.exampleparam = exampleparam; public void mybusinessmethod() { // do stuff using dao XML Spring Spring Spring Spring JavaBeans Spring setdatasource() setexampleparam() 1 JavaBean Spring XML JavaBeans Spring Java.util.Properties J2EE Spring MVC Web Spring Struts WebWork, Web 10

Spring MVC Spring MVC root( ) Struts MVC EJB: Spring EJB EJB Jar XML EJB J2EE 3 InputStream is = getclass().getresourceasstream("myfile.xml"); XmlBeanFactory bf = new XmlBeanFactory(is); MyBusinessObject mbo = (MyBusinessObject) bf.getbean("examplebusinessobject"); Spring IoC Java J2EE 3.4 JDBC Spring JDBC API ResultSet ) JDBC SQLException. JDBC SQLException - SQL - SQLState 11

Spring 2 API SQL SQLException Spring DataSource SQLException org.springframework.dao.dataaccessexceptio SQLState Spring JDBC DAO JDBC Spring 2 JDBC API 1 org.springframework.jdbc.core - - Inversion of Control Spring JDO(PersistenceManager ) (JTA ) JNDI API Spring Spring JdbcTemplate SQL JdbcTemplate template = new JdbcTemplate(dataSource); final List names = new LinkedList(); template.query("select USER.NAME FROM USER",new RowCallbackHandler() { public void processrow(resultset rs) throws SQLException { names.add(rs.getstring(1)); ); SQLException Spring 12

JdbcTemplate Spring JDBC JDBC JDBC org.springframework.jdbc.object JDBC RDBMS - - Java API API JDO API class UserQuery extends MappingSqlQuery { public UserQuery(DataSource datasource) { super(datasource, "SELECT * FROM PUB_USER_ADDRESS WHERE USER_ID =?"); declareparameter(new SqlParameter(Types.NUMERIC)); compile(); // Map a result set row to a Java object protected Object maprow(resultset rs, int rownum) throws SQLException { User user = new User(); user.setid(rs.getlong("user_id")); user.setforename(rs.getstring("forename")); return user; public User finduser(long id) { // Use superclass convenience method to provide strong typing return (User) findobject(id); User user = userquery.finduser(25); DAO org.springframework.jdbc.object StoredProcedure Spring 1 13

Java Spring ( ) Spring 1 EJB Spring DataAccessException Spring Spring DAO try { // do work catch (OptimisticLockingFailureException ex) { // I m interested in this Spring try { // do work catch (OptimisticLockingFailureException ex) { // I m interested in this catch (DataAccessException ex) { // Fatal; just rethrow it 14

- - 2 (DataAccessException) (OptimisticLockingFailureException) Spring ( ) ( JDO ) JDBC API 1 TopLink JDO Gavin King Hibernate Spring JDBC JDBC final RDBMS RDBMS API DAO JDBC JDBC SQL Spring JDBC Spring 3.5 O/R O/R Spring Hibernate 2.x 15

JDO Spring Hibernate Hibernate Hibernate Spring Spring Spring Hibernate Hibernate Hibernate Spring AOP Java Hibernate Spring Spring Hibernate JDBC Spring Hibernate AOP Java ( ) Hibernate JDBC Hibernate Hibernate Spring Hibernate catch/throw JDBC (DB ) JDBC 16

Hibernate API API Spring Hibernate Hibernate /DAO IoC Hibernate Hibernate Spring inversion of control Hibernate ( 3.6 API JTA API J2EE EJB CMT Spring Spring JdbcTemplate JTA EJB CMT EJB Spring JTA Spring (JDBC ) JTA JTA XA 2 17

JDBC Hibernate JTA JTA J2EE JTA Spring JDBC Hibernate Spring JTA Spring 3.7 AOP AOP Spring AOP J2EE POJO JBoss4 Spring AOP Web EJB WebLogic,Tomcat,JBoss,Resin,Orion Web Spring AOP AOP AspectJ mixin 18

Spring ( 1 ) ( 1 ) Spring AOP OOP OOP 5 10 AOP AOP ( AspectJ ) Spring AOP ( ) )CGLIB Spring AOP (http://www.sourceforge.net/ projects/aopalliance/) AOP AOP TheServerSide AOP Spring AOP EJB POJO ( EJB Spring AOP ) Spring Spring AOP TransactionTemplate 19

POJO JTA JDBC,Hibernate API Spring EJB CMT POJO Spring API POJO ThreadLocal EJBContext EJB ( Throwable ) Spring EJB Spring API(EJB EJBContext ) JTA Spring SpringAOP AOP Spring J2EE 20

Spring AOP Spring Spring XML AOP <bean id="mytest" class="org.springframework.aop.framework.proxyfactorybean"> <property name="proxyinterfaces"> <value>org.springframework.beans.itestbean</value> </property> <property name="interceptornames"> <list> <value>txinterceptor</value> <value>target</value> </list> </property> </bean> AOP ProxyFactoryBean BeanFactory getbean() ( ) ProxyFactoryBean interceptornames String ( prototype ) target invoker interceptor mytest <ref> Spring IoC 21

BeanFactory AOP TestBean target = new TestBean(); DebugInterceptor di = new DebugInterceptor(); MyInterceptor mi = new MyInterceptor(); ProxyFactory factory = new ProxyFactory(target); factory.addinterceptor(0, di); factory.addinterceptor(1, mi); // An "invoker interceptor" is automatically added to wrap the target ITestBean tb = (ITestBean) factory.getproxy(); Java AOP Spring AOP Jon Tirsen Nanning Aspects(http://nanning.codehaus.org/) AOP EJB Spring 3.8 MVC Spring MVC Web Spring MVC Struts MVC Spring Controller Struts Action Spring MVC Struts Spring JavaBean Spring MVC ( Java )Struts Spring MVC Spring MVC Spring MVC JSP Velocity XSLT 22

Spring View Spring Controller IoC Spring Web Struts Spring Struts1.1 Spring MVC Spring Controller handlerequest() Google public class GoogleSearchController implements Controller { private IGoogleSearchPort google; private String googlekey; public void setgoogle(igooglesearchport google) { this.google = google; public void setgooglekey(string googlekey) { this.googlekey = googlekey; public ModelAndView handlerequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String query = request.getparameter("query"); GoogleSearchResult result = // Google // google google.dogooglesearch(this.googlekey, query, start, maxresults, filter, restrict, safesearch, lr, ie, oe); return new ModelAndView("googleResults", "result", result); 23

IGoogleSearchPort GLUE Spring FactoryBean IoC Java EJB Spring Thomas Risberg Spring MVC (http://www.springframework.org/ docs/mvc-step-by-step/spring-mvc-step-by-step.html) Spring MVC Web MVC with the Spring Framework(http://www.springframework.org/docs/web mvc.html). MVC Spring MVC Spring Spring Spring Struts WebWork Tapestry 3.9 EJB EJB Spring EJB EJB EJB POJO ( EJB )Spring EJB Jar XML BeanFactory EJB import org.springframework.ejb.support.abstractstatelesssessionbean; public class MyEJB extends AbstractStatelessSessionBean implements MyBusinessInterface { private MyPOJO mypojo; 24

protected void onejbcreate() { this.mypojo = getbeanfactory().getbean("mypojo"); public void mybusinessmethod() { this.mypojo.invokemethod(); MyPOJO ( ) XML Spring ejb-jar.xml ejb/beanfactorypath XML <session> <ejb-name>mycomponent</ejb-name> <local-home>com.test.ejb.myejbbeanlocalhome</local-home> <local>com.mycom.mycomponentlocal</local> <ejb-class>com.mycom.mycomponentejb</ejb-class> <session-type>stateless</session-type> <transaction-type>container</transaction-type> <env-entry> <env-entry-name>ejb/beanfactorypath</env-entry-name> <env-entry-type>java.lang.string</env-entry-type> <env-entry-value>/mycomponent-ejb-beans.xml</env-entry-value></env-entry> </env-entry> </session> mycomponent-ejb-beans.xml EJB Jar EJB XML EJB Jar Spring setysessioncontext() ejbcreate() EJB Spring onejbcreate() 3.10 EJB Spring EJB EJB EJB 25

JNDI EJB EJB create() EJB API EJB EJB Sun OTN J2EE EJB Spring Spring JDNI EJB EJB EJB EJB ( ) MyComponent MyComponent Spring EJB Java Web EJB MyComponent private MyComponent mycomponent; public void setmycomponent(mycomponent mycomponent) { this.mycomponent = mycomponent; 26

Spring XML LocalStatelessSessionProxyFactoryBean EJB Spring MyComponent <bean id="mycomponent" class="org.springframework.ejb.access.localstatelesssessionproxyfactorybea <property name="jndiname"><value>mycomponent</value></property> <property name="businessinterface"><value>com.mycom.mycomponent</value></property> </bean> <bean id="mycontroller" class = "com.mycom.mycontroller"> <property name="mycomponent"><ref bean="mycomponent"/></property> </bean> AOP Spring AOP mycomponent EJB EJB JDNI 1 EJB EJB create() EJB mycontroller mycontroller EJB Web EJB EJB POJO Java mycomponent JNDI EJB 1 ( EJB ) EJB 27

EJB org.springframework.ejb.access.simpleremotestatelesssessionproxyfactorybean EJB EJB RemoteException 3.11 Spring Spring 1.0M1 75 1.0RC1 80% CVS Spring IoC JNDI J2EE Spring Spring Spring 28

3.12 Spring? Spring Spring ( Spring JDBC 3.13 Spring 1.0 1.0 AOP ( ) C# Spring1.0 JSR-175 1.0 JDBC JMS IDE 4 Spring J2EE Spring 29

Spring JavaBean Inversion of Control Spring IoC Spring JDBC Spring Hibernate O/R Spring JTA JDBC Spring Java AOP POJO - - EJB EJB Spring MVC IoC 4.1 Spring Expert One-on-One J2EE Design and Development(Rod Johnson,Wrox, 2002,)[ : J2EE ]. Spring Spring Spring : http://www.springframework.org. Javadoc Sourceforge Spring Spring Spring 30

4.2 Java 7 J2EE Expert One-on-One J2EE Dedign and Development(Wrox, 2002) J2EE Wiley J2EE Rod 2 Java 31