sshのいくつかの問題【転】


struts 2-1:なぜ依頼ごとにアクションオブジェクトを作成するのですか?   スレッドの安全を考慮して、各requestは互いに影響しないです。1-2:ModelDrivenブロックの配置において、refshModelBeforeResoultはどのような問題を解決しましたか?  古いモデルのオブジェクトをValueStockから外して、新しいモデルのオブジェクトをValueStockに押し込みます。公式解釈:set to true if you want the model to be refreshed on the value stack after action execution and before execution.The setting is useful want to change the model instance during the action execution。being caled at least twice.普通は配合する必要がなくて、ついでに誰がこのようにお父さんの問題をののしります。1−3:なぜweb.xmlに配置されたStruts PrepareAndExecute Filterはすべての要求をフィルタするのですか?ここは選択的にフィルタリングできますが、一般的には/*です。すべての要求はStruts PrepareAndExecute Filterを経なければなりません。これはstruts.xmlファイルを探します。普通はsrcの下の第一階のディレクトリに置いて、それから相応の資源を見つけて転送します。1-4:ValueStockについて話してもらえますか?  値スタックとは一つのスタックの中に大きな塊の数値を積み上げて、actionでValueStock vs 1=ActContect.get Controtext().getValueStock();実は値スタックはmapの容器と似ています。中にはキーの値が入っていますが、違いがあります。この値スタックのキーは全部Steringタイプです。私たちは一般的にこのようにして、値スタック内のコンテンツ名の属性を取得することができます。<s:property value=「user.username」/>また、el式でもいいです。{aa}またはognl式<s:propertyvalue=”でもいいです。ここで、ognl式は主に値スタックにアクセスします。〹user.usernameは、上記3つの範囲でuser.username属性を順次読み込むのに相当します。見つけられるまでは、1-5:Struts 2はどのようにMVC設計モードを実現しますか?  自分で理解して、自分のrequestで歩いてみたら分かります。MVCが分かりませんが、STRUTSも使いますか?Spring 2-1:なぜSpringを使いますか?XXXはなぜ使いますか?使いやすいです。スプリングには彼の安全メカニズム、事務管理、ログ管理などの多くの役割があります。最も主要なのは結合度を最低にすることです。2-2:IOC/DIについて話してください。工場と対象を別々に分離し、柔軟性とメンテナンス性を高めます。具体的に多すぎます。2-3:声明式の事務管理とは?なぜ声明式の事務管理を使うのですか?Springはどのように声明式の事務管理を実現しますか?Springの声明式事務管理は下の階にAOPの基礎の上に成り立っています。その本質は、方法の前後をブロックし、目標方法の開始前に事務を作成または加入し、目的方法の実行後に実行状況に応じて、事務を提出またはロールバックすることである。宣言式を使用した事務管理の再利用性が高い。ここでは一番よく使われている構成を挙げましょう。
<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>
	
	<!--       Oracle  lob    -->
	<bean id="nativeJdbcExtractor" lazy-init="true"
		class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" />
	<bean id="lobHandler" lazy-init="true"
		class="org.springframework.jdbc.support.lob.OracleLobHandler">
		<property name="nativeJdbcExtractor">
			<ref bean="nativeJdbcExtractor" />
		</property>
	</bean>
	
	<!-- Hibernate SessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="lobHandler" ref="lobHandler" />
		<property name="mappingDirectoryLocations">
			<list>
				<value>classpath*:XXX</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
			   <!-- <prop key="hibernate.jdbc.batch_size">50</prop>-->
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
				<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
				<prop key="hibernate.default_schema">${hibernate.default_schema}</prop>
			</props>
		</property>
	</bean>
	<bean id="txProxyTemplate" abstract="true"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		<property name="transactionManager">
			<ref local="transactionManager"></ref>
		</property>
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED,-exception</prop>
				<prop key="update*">PROPAGATION_REQUIRED,-exception</prop>
				<prop key="delete*">PROPAGATION_REQUIRED,-exception</prop>
				<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
			</props>
		</property>
	</bean>
 2-4:springとhibernateを統合して、事務管理特性を定義する場合、なぜ追加、削除、更新操作以外の方法、すなわち主にクエリタスクを実行する方法をread-onlyと定義するのですか?このプロパティを適用すると、下のデータベースで読み取りを最適化できますが、PROPAAGATION(u)に合わせて最適化します。REQUIRED、PROPAAGATION_REQUIRES_NEWまたはPROPAAGATION_NESTEPは、物事にしか使えないものです。簡単に言えば、検索速度を上げます。ハイベルナ3-1:ORマッピングの理解を教えてください。オブジェクト関係マップは、関係データベースのデータ構造をオブジェクトと関連付けて、関係データベースを操作します。3-2:多くの人がヒベルナタはビッグプロジェクトに適していないと言っていますが、性能に問題があります。どうやって理解しますか?いいかどうかはあなたがどう使うかによって、ヒベルナを使ってもsqlを使わないとは限りません。たとえば統計に必要なデータは直接sqlで実行します。hibernateを使う上で一番重要なのは怠惰なローディングの使い方です。適切な時にローディングを使うと性能が向上します。3-3:Hibernateはなぜデータベースの識別を定義しなければならないですか?データベーステーブルのキーに対応するため、一意の原則です。3-4:なぜHibernateはhashCodeとequals方法を実現することを提案しますか?多対多双関係は、hashCodeとequalsが正常に書いたらロードできない問題があります。setセットは常に関連するオブジェクトを保存するために使用されますが、setセットは重複してはいけません。hibernateはまさに「=」に行って、二つのオブジェクトが同じかどうかを比較します。だから、hashCodeとequalsを比較します。3-5:Hibernateエンティティ類におけるデータベースの識別とデータベースのメインキーとの関係についての認識を話してください。は、オブジェクトと関係データベース内のテーブルの識別に固有の識別です。3-6:Hibernate関連マップとデータベースの外部キーの関係についての認識を話してください。関係マップの1つの外鍵は、1−1、1−N、N−1、N−Nのような関係を形成するオブジェクトの一例に相当する。3-7:session.save()を呼び出す方法は、ヒベルナは必ずinsert文を発しますか?あなたの理解saveについて話してください。一時的なインスタンスを永続化した識別子を直ちに生成し、識別子を返します。saveの前にhibernateはメインキーによって一度検索します。保存できるかどうかを確認します。3-8:session.udateを呼び出す方法は、ヒベルナは必ずudate文を発しますか?あなたの理解について話してください。udateは脱管状態の対象または自由状態の対象をデータベースに更新します。udateの前にhibernateがメインキーによって調べに行きます。更新できるかどうか見てください。3-9:以下の名詞、概念、用法について話してください。lazy、lazy="extra"、inverse、fetch、fetch="join"、fetch="subselect"、batch-sizlazy概念:この対象内の普通の属性を本当に使う時だけ作成します。hibernateにとっては本当に使っている時にslacherがサポートされます。extra:1つのスマートな怠惰なロードポリシー、すなわちセットのsize/containsなどの方法を呼び出すとき、hibernate lazy="extra"は、セット全体のデータをロードするのではなく、必要な値を得るためにスマートなSQL文を発行します。本当にこれらのセット要素のオブジェクトデータを使用する必要がある時だけ、すべてのオブジェクトのデータを読み込みます。inverse–マークはどちらから関連関係を維持しますか?(双方向関連では使用されます。inverseのデフォルト値はfalseです。inverseがtrueに設定されている場合、相手によって両者の関係を維持するという意味です。fetchはキャプチャーポリシーです。fetch="select"検索の際に、先に端の実体を調べて、端の部分から多端の実体を調べたら、1+nのsql文が発生します。fetch="join"検索の際に外部接続を使ってクエリーを行い、1+nの現象fetch="subselect"を送信して、前で調べたすべてのエンティティオブジェクトの関連セットbatch-sizeをキャプチャし、一括更新のHQL/SQL数を設定します。この数に達するとデータベースに提出しますが、生成したHQL/SQL文は一つも少なくないです。3-10:lay配置しました。rue」はきっと怠惰なロードを実現しますか?get()は怠惰なロードを実現することができません。ロードを使用しなければなりません。fetchはselect 3-11を使用します。Hibernateの「N+1」について話してください。問題のペアは、一度に何回かの照会を持つことが多いです。主キー関係のオブジェクトです。テーブルの照会を行うと、このテーブルは他のテーブルとペアが多い場合、またはペアが多い場合、N+1の問題が発生します。文を検索すると、主キーname=1のように、このnameに関連する他のテーブルはNのレコードがあります。またNの文を出して調べますが、私はそれらの記録はいらないです。ここでN+1の問題です。