亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ejb3-1.txt

?? Java大部分的基礎知識,EJB3,EJB2,WEBSERVICE,SOAP,JMS,MQ,還有些面試題
?? TXT
字號:
ejb3.0所用的技術:
	rmi:遠程方法調用
		客戶端可以直接調用服務端的相關方法
	jndi:相當于dns,是類的一個別名可以更好的記憶。
連接池:
	事先有n個連接,可以直接取,用完了還可以放回去。
JBOSS安裝:
	java -jar jboss-4.0.4.GA-Patch1-installer.jar
	在windows的環境加入一個環境變量JBOSS_HOME
		JBOSS_HOME=C:\jboss404
	如果在安裝時是
		ejb3_clusered:集群
		default
		直接運行run.bat,就可以啟動jboss
	如果是all
		在dos下,run -c all
JBOSS的目錄
	C:\jboss-404\bin:運行目錄 
	C:\jboss-404\client:客戶端需要的類包 
	C:\jboss-404\docs\examples\jca:連接池的模板文件
	C:\jboss-404\server\default\DEPLOY:所有JAR ERA WAR包的部署目錄 
	C:\jboss-4.0.4.GA\server\default\lib:部署文件的包庫
	C:\jboss-404\server\default\work:可以看到JSP頁面的源代碼
	C:\jboss-404\docs\dtd:所有的JBOSS所有的DTD文件 
	C:\jboss-404\server\default:默認的運行目錄,在安裝時確定(ALL DEFAULT MINI)
配置數據源連接池的過程
	將MSSQL中的三個類包拷到C:\jboss-404\server\default\lib目錄下  			
	將C:\jboss-404\docs\examples\jca模板目錄中的MSSQL-DS.XML拷到C:\jboss-404\server\default\DEPLOY目錄下
	修改C:\jboss-404\server\default\DEPLOY中的內容指定到對應的數據庫及用戶名和密碼			
建立EJB3.0實體BEAN的過程
	在SRC下建立一個META-INF目錄
	在META-INF中加入一個persistence.xml文件,內容如下,文件名必須是persistence.xml
	<persistence>
		<persistence-unit name="foshanshop">
		<jta-data-source>java:/MSSQLDS</jta-data-source>
		<properties>
			<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
		</properties>
		</persistence-unit>
	</persistence>
	將build.xml拷到工程的根目錄下。
ant的作用:
	編譯
	打包
		jar:ejb class
		ear:jar+war(ejb+struts)
		war:web處理,jsp、action、actionForm
	部署:
		發部到服務器上
	文件目錄的創建、刪除、復制

	加載模板
		window-->preferences-->java-->Editor-->Templates
			導入
	寫代碼
	將eclipse的編譯環境變為jdb5.0,java compiler
持久化核心類
	--持久化類
	@Entity
	@Table(name = "Customer")
	public class myEntity 		
	{	
		@id 
		public Integer getCustomerID()
		{
		}
		
	}
	--持久化代碼
		EntityManager  em
			merge  --修改
			remove  --刪除
			find(Class,Object) --查找
			Query query=em.createQuery("select c from Customer c where c.customerName=?1 and c.pwd=?2");
			query.setParameter(1,customer.getCustomerName);
			List list=query.getResultList();
業務層
	一個接口,一個類
	//接口
	public interface IFacade
	{
		public void insert() throws Exception
	}
	//實現類	
	@Stateless  //當前是一個無狀態的sessionBean
	@Remote ({IFacade.class})  //其遠程接口是IFacade
	public Class Facade implements IFacade
	{
		@PersistenceContext
		protected EntityManager em;
		public void insert() throws Exception
		{
			em.persist();
		}
	}		
如何得到上下文環境(jndi.config)
	java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
	java.naming.provider.url=localhost:1099
	java.naming.factory.url.pkgs=org.jboss.naming	
jndi:java naming directory interface(dsn)
rmi:遠程方法調用
	客戶端可以直接訪問服務器的方法。
訪問過程:
	上下文件環境
		在properties中加入一個地址localhost:1099
		在properties中加入一個工廠org.jnp.interfaces.NamingContextFactory
		Properties p=new Properties();
		p.load(Class.getReasouseAsStream(jndi.config));
		Context context=new InitContext(p)
	通過lookup得到遠程接口	
		IFacade facade=(IFacade)context.lookUp("Facade/remote");	
ejb3.0:
	SesssionBean:
		stateless:無狀態(1..n客)
			只要一個接口一個類
		stateful:有狀態(1..1)
	EntityBean:(cmp)
		持久化	
ejb3.0與ejb2.0之間的比較:
	所有的配置沒有xml文件,使用注釋的原元素來說明,jdk1.5。	
	ejb2.0要有兩個接口一個類,與框架的耦合度太高,ejb3.0是pojo:
		提高開發效率,調試		
		提高了測試,對于實體bean還是要發部到容器中進行處理。
	ejb3.0在jboss中使用hibernate技術作為實體bean,去除ejb2.0所具有缺點。
	ejb3.0的實體bean可以處在:自由、持久、游離,可以直接返回一個pojo
	ejb2.0離不開容器,實體只能返回一個遠程或本地接口,要進行傳送要dto,dto是不符合面向對象的思想。
pojo:pure old java object
dto:data translate object(get set)
ejb3.0與spring的比較
	ejb3.0:
		pojo:部分的依賴于容器
		減少了xml文件,使用注釋的元素來說明,jdk1.5
		與容器緊密的整合有一起,所在執行效率上較高(事務、日志)
		所有服務是容器提供的,如果想減去一些不用的服務,只能調整容器。
	spring:
		pojo:完全不依賴于容器,測試
		一切都是xml文件,配置復雜
		在容器之上,所在效率低一些
		在容器之上,選擇不同的服務(安全、事務、分布式)。
cascade 的值只能是:
		無:不需要級聯
			one表可以不加many,但many要加one,主要來控制主外鍵
			one表通過add對象加入的內容,在many不用設置。			
		CascadeType.PERSIST(級聯新建)
		CascadeType.REMOVE(級聯刪除)
		CascadeType.REFRESH(級聯刷新)
		CascadeType.MERGE(級聯更新)
		CascadeType.ALL(所有的都可以)
onetomany
	mappedBy="customer":代表是雙向,如要關聯,將其作為另一個對象的屬性。
	fetch:延時:默認是lazy
		FetchType.EAGER:瞬時
		FetchType.LAZY。
	@OrderBy(value = "buyID ASC")注釋指明加載buy 時按buyID 的升序排序
manytoone:
	@ManyToOne注釋有四個屬性:targetEntity、cascade、fetch 和optional
	optional=true:buy所有,customer匹配
	@JoinColumn(name = "customer_name")注釋指定buy映射表的customer_name列作為外鍵與Customer映射表的主鍵列
關聯。
onetoone:實際上是onetomany的一個變種,不同的是many的
	  @JoinColumn(unique="true"),可以變成的one-to-one
	  使用方法一onetomany一樣。
	  mappedBy="person":代表是雙向,如要關聯,將其作為另一個對象的屬性,其是one表。

	  one用onetoone
	  many用Manytoone    @JoinColumn(unique="true")
manytomany:
	兩個表之間的關系是many的時候,根據一個表主鍵可以直接取出另一個表的所有內容
	實現基理:
		有一個中間表即關系集,實現多與多的關系。
	被控方:
		@ManyToMany(mappedBy = "students")
	主控方:
		@ManyToMany(fetch = FetchType.LAZY)
		@JoinTable(name = "teacherstudent",
			joinColumns = {@JoinColumn(name = "teacher_ID", referencedColumnName = "teacherID")},
			inverseJoinColumns = {@JoinColumn(name = "student_ID", referencedColumnName =
				"studentID")})


復合主鍵:
	作一個主鍵類,有一個默認的構造函數,要序列化,包括多個屬性,
	這個類的實現equals及hashCode方法。	
	要有一個注釋:@Embeddable,可以聲明其列	
	主鍵類整體作為主表的一個屬性,進行相關的操作。
	在關聯的時候的處理:
		有復合主鍵的是one,有另一個many表的外鍵指向one表的主鍵,要如下:
		@JoinColumns 
		({
			@JoinColumn(name="first_name", referencedColumnName = "firstName", nullable=false),
			@JoinColumn(name="last_name", referencedColumnName = "lastName", nullable=false)
		})	


消息驅動bean:異步。(Message Driver Bean)
jms:(java message server)
	概念:
	消息驅動Bean(MDB)是設計用來專門處理基于消息請求的組件。
	一個MDB類必須實現MessageListener 接口。
	當容器檢測到bean守候的隊列一條消息時,
	就調用onMessage()方法,將消息作為參數傳入。
	MDB在OnMessage()中決定如何處理該消息。
	你可以用注釋來配置MDB 監聽哪一條隊列。
	當MDB 部署時,容器將會用到其中的注釋信息。
	使用的時間:
		當一個業務執行的時間很長,
		而執行結果無需實時向用戶反饋時,
		很適合使用消息驅動Bean
		種類:
	注釋信息:
		@MessageDriven(activationConfig =
		{
			@ActivationConfigProperty(propertyName="destinationType",
			propertyValue="javax.jms.Queue"),
			@ActivationConfigProperty(propertyName="destination",
			propertyValue="queue/foshanshop")
		})
		@ActivationConfigProperty注釋配置消息的各種屬性
			destinationType屬性指定消息的類型,
				topics:(javax.jms.Topic)
				       Topics 可以有多個客戶端。
				       用topic 發布允許一對多,或多對多通訊通道。
				       消息的產生者被叫做publisher, 
				      消息接受者叫做subscriber。					
				Queue(javax.jms.Queue) 僅僅允許一個消息傳送給一個客戶。
				      一個發送者將消息放入消息隊列,
				     接受者從隊列中抽取并得到消息,
				     消息就會在隊列中消失。
			destination屬性用作指定消息路徑,消息驅動Bean在發布時,
				如果路徑不存在,容器會自動創建該路徑,當容
				器關閉時該路徑會自動被刪除。
	實現:
		public myMessage implements MessageListener
		{
			public void onMessage(Message mess)
			{

			}
		}
	客戶端連接:
		Properties p=new Properties();
		p.load(Client.class.getResourceAsStream("link.properties"));
		//得到上下文環境
		Context context=new InitialContext(p);
		//得到服務的消息驅動bean的引用
		Queue que=(Queue)context.lookup("queue/foshanshop");
		//得到消息連接工廠
		QueueConnectionFactory factory=(QueueConnectionFactory)context.lookup("ConnectionFactory");
		//產生一個連接
		QueueConnection queueConnection=factory.createQueueConnection();
		//產生一個session
		QueueSession session=(QueueSession)queueConnection.createSession(false,QueueSession.AUTO_ACKNOWLEDGE);
		//產生一個消息
		TextMessage message=session.createTextMessage("hello 張三");
		//產生一個發送者,以消息引用為參數
		QueueSender sender=session.createSender(que);
		//發送消息 
		sender.send(message);
		session.close();
攔截器:在執行某一個類的方法前被攔截處理
	實現過程:
	實現一個攔截器
public class Inteceptor
{
	@AroundInvoke
	public Object XXXXX(InvocationContext ctx) throws Exception
	{
		long start=System.currentTimeMillis();
		try
		{
			return ctx.proceed();
			
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw e;
		}
		finally
		{
		
		}
	}

}
	在被攔截的類中進行說明
		@Interceptors({Inteceptor.class})
pojo:
	pure old java object
	pure old java inteface
dto:data trans object
vo:value object
po:persistent object
bo:business object
生命周期:
	ejb2.0是固定的方法,必須實現,即使方法內部是空的。
	ejb3.0方法名可以隨心定義,只有的注釋說明就可以。
	@Init:初始化
	@PostConstruct:實例化被調用的構造方法
	@PreDestroy:在刪除前被調用
	@PrePassivate:鈍化前被調用
	@PostActivate:激活前被調用
	@Remove:移除前被調用,同時告訴服務器刪除對象
依賴注入:
	通過注釋可以將一個bean注入到另一個bean中,注入有兩種方式。		
		1、根據jndi名
			@EJB (mappedName="HelloWorldBean/remote")
		2、根所類名,沒有包名。			
			@EJB (beanName="TestTime")
		3、可以在set方法前或屬性方法前寫注釋注入	
	可以注入任意一個
		@Resource (mappedName="java:/MSSQLDS")


web service:web服務
作用:
	實現跨平臺、跨協議、跨系統、跨語言(java->c#)
	粗粒度的處理
協議:
	tcp/ip-->http-->soap(simple object access protocal)
傳輸的介質:
	xml
角色:
	服務提供商(業主)

	代理商(中介)

	客戶端(買方)
ejb:
	rmi:遠程方法調用,java與java之間
	rmi:粗粒度的處理
wsdl:web service description language
在jboss中實現web service過程
	寫一引普通的類
	加入一些說明注釋
		@WebService(name = "HelloWorld",
		targetNamespace = "http://com.foshanshop.ws", serviceName = "HelloWorldService")
		@SOAPBinding(style = SOAPBinding.Style.RPC)		
	1. name
		Web 服務的名字,WSDL中wsdl:portType元素的name屬性和它保持一致,默認是Java 類或者接口的名字。
	2. serviceName
		Web 服務的服務名,WSDL 中wsdl:service元素的name屬性和它保持一致,默認是Java 類的名字+”Service” 。
	3. targetNamespace
		WSDL文件所使用的namespace,該Web 服務中所產生的其他XML文檔同樣采用這個作為namespace 。
		
		@SOAPBinding()表示這個服務可以映射到一個SOAP消息中。Style用于指定SOAP消息請求和回應的編碼方式。
		
		@WebMethod 這個注釋放在需要被發布成Web 服務的方法前面。
	4、在web.xml將提供服務的類指定為servlet
		<servlet>
			<servlet-name>hello</servlet-name>
			<servlet-class>aa.HelloWorld</servlet-class>
		</servlet>
		<servlet-mapping>
			<servlet-name>hello</servlet-name>
			<url-pattern>/hello/*</url-pattern>
		</servlet-mapping>

	客戶端的調用過程:
		需要用如下內容生成一個xml文件及客戶端類
			加入一個xml文件
			在ant中加入如下內容:
	<target name="generate-sources" description="生成客戶端代碼及映射文件">
		<taskdef name="wstools" classname="org.jboss.ws.tools.ant.wstools">
			<classpath refid="build.classpath" />
		</taskdef>
		<wstools dest="${app.dir}/src" config="${src.dir}/wstools-config.xml" />
	</target>
		
		通過客戶端與服務器交互。
		URL hellourl=new URL("http://lab5:8080/webservice/hello?wsdl");
		String namespace="http://com.foshanshop.ws";
		URL mappingUrl=Client.class.getClassLoader().getResource("jaxrpc-mapping.xml");
		//service工廠
		ServiceFactoryImpl sfi=new ServiceFactoryImpl();
		//得到服務名,前綴加真正的名稱
		QName qname=new QName(namespace,"HelloWorldService");
		//得到具體的服務
		Service service=sfi.createService(hellourl,qname,mappingUrl);
		//得到一個遠程接口
		HelloWorld hw=(HelloWorld)service.getPort(HelloWorld.class);
		hw.hello("zhang sai");
開發過程:
	可行性報告
	之前:
		整理ant
		整理cvs目錄
		定下來寫那些文檔,誰什么時候提交
	需求
		use-case圖
		需求說明書
		界面原型
		類圖(ooa):業務相關的對象模型
	概要設計
		e-r圖:對象的模型的進一步持久。
		類圖的細化:進一步的細化,加入各種模式及框架
	詳細設計
		時序圖
		細化類圖
		要的編碼規范
	實現
	測試		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re免费视频精品全部| 国产精品国模大尺度视频| 亚洲精品一区二区三区四区高清| 久久久91精品国产一区二区三区| 亚洲色图19p| 国产电影精品久久禁18| 欧美日韩国产高清一区| 国产精品高潮呻吟久久| 美女视频黄免费的久久| 欧美吻胸吃奶大尺度电影| 国产蜜臀97一区二区三区| 奇米影视一区二区三区小说| 一本色道**综合亚洲精品蜜桃冫| 精品处破学生在线二十三| 亚洲成人激情综合网| 色偷偷88欧美精品久久久| 日韩精品久久理论片| 99久久久无码国产精品| 国产三级一区二区| 麻豆精品一区二区av白丝在线| 欧美日韩免费高清一区色橹橹| 亚洲欧洲无码一区二区三区| 韩国成人在线视频| 精品国产免费久久 | 欧美性猛交一区二区三区精品| 久久久久国色av免费看影院| 久久精品国内一区二区三区| 欧美一级xxx| 蜜桃av一区二区在线观看| 日韩一区二区三区免费看 | 18涩涩午夜精品.www| 国产99一区视频免费| 久久久久久**毛片大全| 国产裸体歌舞团一区二区| 精品久久久久久久久久久院品网| 麻豆久久久久久| 精品福利一区二区三区免费视频| 久久av中文字幕片| 久久久久久久久久久黄色| 国产mv日韩mv欧美| 亚洲啪啪综合av一区二区三区| 色综合一个色综合亚洲| 一级中文字幕一区二区| 欧美午夜在线观看| 奇米色一区二区三区四区| 精品国产乱码久久久久久免费| 精品一区在线看| 国产欧美日韩在线视频| 99久久综合国产精品| 樱花草国产18久久久久| 欧美日韩中文字幕一区二区| 日韩成人dvd| 国产日本一区二区| 91首页免费视频| 香蕉av福利精品导航| 精品国产一区二区三区忘忧草| 国产不卡在线播放| 亚洲国产欧美日韩另类综合 | 伊人性伊人情综合网| 欧美唯美清纯偷拍| 精品在线播放免费| 亚洲人成小说网站色在线| 欧美日韩国产片| 国产麻豆欧美日韩一区| 亚洲精品视频在线观看免费| 91精品在线观看入口| 懂色av一区二区三区蜜臀| 亚洲资源在线观看| 欧美精品一区二区高清在线观看| 97精品国产97久久久久久久久久久久| 一区二区三区高清不卡| 香蕉乱码成人久久天堂爱免费| 日韩一级二级三级精品视频| 成人一区二区视频| 日日夜夜精品视频免费| 中文一区在线播放| 日韩丝袜情趣美女图片| 91美女在线观看| 国产一区二区不卡在线| 亚洲福中文字幕伊人影院| 久久久国产精品麻豆| 欧美肥妇毛茸茸| 92精品国产成人观看免费| 蜜桃精品视频在线| 亚洲成人av电影在线| 国产精品国产三级国产普通话99| 欧美一区二区高清| 91精品办公室少妇高潮对白| 国产精品66部| 九九视频精品免费| 婷婷国产在线综合| 亚洲男同性视频| 国产精品理论片| 精品国产免费一区二区三区香蕉| 欧美色涩在线第一页| 91在线国产福利| 成人久久18免费网站麻豆| 精品一区二区在线看| 天涯成人国产亚洲精品一区av| 一区二区在线观看视频| 国产精品免费aⅴ片在线观看| 欧美精品一区二区三区在线播放| 欧美福利一区二区| 欧美日韩性生活| 欧美日韩一级二级| 欧美在线综合视频| 91黄色激情网站| 在线看不卡av| 欧美性猛交xxxxxxxx| 在线观看国产日韩| 日本丰满少妇一区二区三区| 91在线视频观看| 色香色香欲天天天影视综合网| 成人h精品动漫一区二区三区| 国产成人激情av| 成人精品视频一区二区三区 | 亚洲国产一二三| 一片黄亚洲嫩模| 性欧美疯狂xxxxbbbb| 午夜精品久久久| 视频一区二区欧美| 蜜桃一区二区三区在线| 久久国产福利国产秒拍| 久久国产精品色| 国产成人综合自拍| 99久久er热在这里只有精品66| 91蜜桃在线观看| 欧美日韩五月天| 精品日产卡一卡二卡麻豆| 久久久久九九视频| 亚洲男人天堂一区| 偷拍与自拍一区| 国产乱理伦片在线观看夜一区| 国产经典欧美精品| 一本一道波多野结衣一区二区| 欧美性一二三区| 欧美mv和日韩mv国产网站| 久久久不卡网国产精品一区| 国产精品短视频| 婷婷激情综合网| 国产一区二区三区观看| 99re热视频精品| 欧美一级在线免费| 国产免费成人在线视频| 一区二区在线观看不卡| 免费在线观看一区| 成人av在线网| 欧美日本韩国一区| 久久久久国产免费免费 | 91亚洲精品久久久蜜桃| 欧美人妖巨大在线| 国产欧美日韩精品a在线观看| 亚洲日本在线a| 久久66热re国产| 91丝袜美腿高跟国产极品老师| 欧美一级日韩一级| 亚洲三级在线免费观看| 久久99久久99精品免视看婷婷| 99在线精品观看| 久久网这里都是精品| 亚洲一区二区三区四区中文字幕| 韩国成人精品a∨在线观看| 日本韩国欧美国产| 中文字幕av一区二区三区免费看| 亚洲一区二区三区四区中文字幕| 国产九九视频一区二区三区| 欧美日韩国产影片| 中文字幕欧美一区| 国产在线不卡视频| 欧美精品欧美精品系列| 中文字幕一区二区日韩精品绯色| 美女网站色91| 欧美日韩大陆在线| 亚洲乱码中文字幕| 国产激情精品久久久第一区二区| 欧美老肥妇做.爰bbww| 国产精品盗摄一区二区三区| 日本在线不卡一区| 欧美在线观看你懂的| 国产精品黄色在线观看| 国产一区二区三区蝌蚪| 欧美一区二区三区免费视频| 成人手机在线视频| 日韩免费高清视频| 青娱乐精品在线视频| 欧美色成人综合| 亚洲一区免费观看| 色婷婷av久久久久久久| 国产精品欧美久久久久一区二区| 国产一区二区三区免费在线观看| 欧美一区二区成人| 日韩和欧美的一区| 日韩一区二区三区观看| 日韩精品乱码av一区二区| 欧美日韩亚洲另类| 肉肉av福利一精品导航| 欧美精品vⅰdeose4hd| 午夜精品视频一区| 欧美精品在线观看播放| 五月天精品一区二区三区|