??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久久久国产精品视频,精品色蜜蜜精品视频在线观看,精品视频在线免费看 http://www.aygfsteel.com/sham2k/q里记录了我从C++转型到JAVA的过E中的学习ȝ与体会?/description>zh-cn Tue, 17 Jun 2025 01:45:35 GMT Tue, 17 Jun 2025 01:45:35 GMT 60 淘宝开店之量 http://www.aygfsteel.com/sham2k/archive/2013/09/25/404442.html飞鹰 飞鹰 Wed, 25 Sep 2013 15:28:00 GMT http://www.aygfsteel.com/sham2k/archive/2013/09/25/404442.html http://www.aygfsteel.com/sham2k/comments/404442.html http://www.aygfsteel.com/sham2k/archive/2013/09/25/404442.html#Feedback 0 http://www.aygfsteel.com/sham2k/comments/commentRss/404442.html http://www.aygfsteel.com/sham2k/services/trackbacks/404442.html 敬请光妹妹的淘宝店Q?a >prefer88.taobao.com
]]> Z报文驱动的EJB目开发过E(qͼ http://www.aygfsteel.com/sham2k/archive/2011/10/29/362290.html飞鹰 飞鹰 Sat, 29 Oct 2011 12:22:00 GMT http://www.aygfsteel.com/sham2k/archive/2011/10/29/362290.html http://www.aygfsteel.com/sham2k/comments/362290.html http://www.aygfsteel.com/sham2k/archive/2011/10/29/362290.html#Feedback 0 http://www.aygfsteel.com/sham2k/comments/commentRss/362290.html http://www.aygfsteel.com/sham2k/services/trackbacks/362290.html 本文的Y件系l架构参考?a id="homepage1_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" class="postTitle2" href="http://www.aygfsteel.com/sham2k/archive/2009/10/10/297629.html">ZEJB 3.0的企业应用后端框?/a>》?br /> 1、创建数据库及数据库表?br /> 2、创建实体类及相应的DAOcdQ本库是EJB模块Q可以动态更换。实体类L对应数据库表Q每个表对应一个或多个实体cR实体类是POJO对象。DAOcM用JPA完成实体对象的增、删、改、查、锁{操作,和具体业务逻辑无关?br />Q?Q创建EJB目Q包含ejbModule、testcase、script{目录。源码放|到ejbModule目录Q测试代码放|到testcaseQ数据库相关脚本攄到Script目录?br />Q?Q给目dJPA支持。从ApplicationServer支持的JPA中选择一ƾJPA实现。实际部|时QJPA模块是可以动态更换的?br />Q?Q编辑项目的持久化配|文Ӟ和数据库配置保持一致?br />Q?Q给试或JPAd依赖的外部JAR包?br />--------- 准备qA Q?Q从数据库生成实体类q定Ӟ保每个实体cL唯一的序列化ID。每个实体类有主键,实体cd主键cd是可序列化的。如果实体对象和数据库数据间要进行某U{换动作,由实体类的Get/SetҎ完成?br />Q?Q编写一个AbstractEnityDaocd现调用JPA完成实体对象的持久化操作。ؓ每个实体cL生一个DAOcd成该实体的持久化。该DAO是一个SessionBeanQ且只实现本地方法。如果要对实体的值合法性进行检查,则在DAOcd成?br />Q?Q编写DAO和实体类的测试代码,认每个DAOcd工作正常?br /> 3、创建实体类及DAOcȝclient库。本库是普通的JAR包,l未来用实体对象和DAO对象的对象用?br />Q?QDAOcd完成q定版后Q创建JAR库?br />Q?Q复制DAOcd的全部实体类到本库,保包名没有变化?br />Q?Q复制DAOcd的全部DAO接口到本库,保包名没有变化?br />Q?Q编辑全部实体类Q去掉@JPA的注释ƈU正import语句Q以减少本库的依赖性?br /> 4、创建报文库Q本库是普通Jar包?br />Q?Qؓ每个报文创徏一个报文类。报文类是POJO对象Q且必须可序列化?br />Q?Q如果用报文的全部时JAVA代码Q则使用默认的Java序列化对象的Ҏ传递报文对象。否则,实现序列化方法,报文串转换为报文对象和报文对象{换ؓ报文丌ӀJava内部使用报文对象Q模块间调用使用报文丌Ӏ?br />Q?Q如果用XML作ؓ报文Ԍ则可以ؓ每个报文创徏一个类和一个映文Ӟ通过XML通用cd实现对象和串的{换?br /> 5、编写业务服务库Q本库是EJB模块?br />Q?Q创建AbstractBusinessServicec,定义业务服务的接口,q实现通用的方法?br />Q?Qؓ每个报文创徏一个业务服务类l承AbstractBusinessServicec,q实现对报文的特D处理。业务服务类是SessionBeanQ实现本地接口?br />Q?Qؓ每个业务服务cȝ写测试代码,保每个服务cd可以正常工作?br /> 6、编写业务引擎服务(EJB服务Q?br />Q?Q本服务提供本地和远E方法供Client使用Q接收Client传递的业务报文对象Q根据配|创建ƈ调用业务服务Ҏ文进行处理?br />Q?Q业务引擎通常提供实时调用和MQ调用两类引擎Q后者是消息驱动Bean?br /> 7、Web服务 Q?Q将业务引擎服务装为WebService或http/REST风格的服务,供外部系l调用?br />------------- 完成全部目 8、部|Ԍ全部类库打包ؓEAR发布Q将报文库发布给Java外部客户?br />
]]> ZEJB 3.0的企业应用后端框?/title> http://www.aygfsteel.com/sham2k/archive/2009/10/10/297629.html飞鹰 飞鹰 Sat, 10 Oct 2009 01:24:00 GMT http://www.aygfsteel.com/sham2k/archive/2009/10/10/297629.html http://www.aygfsteel.com/sham2k/comments/297629.html http://www.aygfsteel.com/sham2k/archive/2009/10/10/297629.html#Feedback 0 http://www.aygfsteel.com/sham2k/comments/commentRss/297629.html http://www.aygfsteel.com/sham2k/services/trackbacks/297629.html
本框架的设计要点是:
1.框架按模块分为:接入服务、业务引擎、业务服务、业务组件、实体DAO五个l成部分。接入服务负责提供对外接口,供系l参与者(含h机界面)提交服务hQ支持webService、消息中间g{多U通信模式Q业务引擎负责根据业务请求,加蝲相应的业务服务处理请求ƈq回回应Q业务服务负责加载与调度业务lgq行业务处理Qƈq回回应报文l业务引擎;实体DAO负责完成数据库操作;
2.全部模块l装Z个EARQ除接入服务外,其他模块均是EJB3.0的SessionBeanQEJB讉K均用本地接口以保障pȝ的性能QWebService接入服务是Web应用Q消息中间g接入服务是MDBQ?br />
3、事务控制由EJB容器理Q支持数据库和消息中间g的XA事务Q?br />
4、多个应用间怺讉KQ可以通过消息中间件接入服务的异步讉KQ也可以通过webService接入服务的无事务一致性同步访问,q可以直接通过业务引擎q行事务一致的同步讉KQ?br />
5、业务引擎是业务服务的M理,所有业务服务均有业务引擎调度执行?br />
pȝ的Ml构如下图所C:
]]> MS CAPICOM Samples http://www.aygfsteel.com/sham2k/archive/2009/08/19/291745.html飞鹰 飞鹰 Wed, 19 Aug 2009 02:10:00 GMT http://www.aygfsteel.com/sham2k/archive/2009/08/19/291745.html http://www.aygfsteel.com/sham2k/comments/291745.html http://www.aygfsteel.com/sham2k/archive/2009/08/19/291745.html#Feedback 2 http://www.aygfsteel.com/sham2k/comments/commentRss/291745.html http://www.aygfsteel.com/sham2k/services/trackbacks/291745.html 阅读全文 ]]> MS CryptoAPI Samples http://www.aygfsteel.com/sham2k/archive/2009/08/07/290170.html飞鹰 飞鹰 Thu, 06 Aug 2009 16:23:00 GMT http://www.aygfsteel.com/sham2k/archive/2009/08/07/290170.html http://www.aygfsteel.com/sham2k/comments/290170.html http://www.aygfsteel.com/sham2k/archive/2009/08/07/290170.html#Feedback 2 http://www.aygfsteel.com/sham2k/comments/commentRss/290170.html http://www.aygfsteel.com/sham2k/services/trackbacks/290170.html 阅读全文 ]]> Weblogic 10.3 安装与配|?/title> http://www.aygfsteel.com/sham2k/articles/288822.html飞鹰 飞鹰 Tue, 28 Jul 2009 15:55:00 GMT http://www.aygfsteel.com/sham2k/articles/288822.html http://www.aygfsteel.com/sham2k/comments/288822.html http://www.aygfsteel.com/sham2k/articles/288822.html#Feedback 3 http://www.aygfsteel.com/sham2k/comments/commentRss/288822.html http://www.aygfsteel.com/sham2k/services/trackbacks/288822.html 阅读全文 ]]> SUSE Linux 11.0 安装 http://www.aygfsteel.com/sham2k/articles/288821.html飞鹰 飞鹰 Tue, 28 Jul 2009 15:46:00 GMT http://www.aygfsteel.com/sham2k/articles/288821.html http://www.aygfsteel.com/sham2k/comments/288821.html http://www.aygfsteel.com/sham2k/articles/288821.html#Feedback 0 http://www.aygfsteel.com/sham2k/comments/commentRss/288821.html http://www.aygfsteel.com/sham2k/services/trackbacks/288821.html 阅读全文 ]]> W3C XML Schema 教程 http://www.aygfsteel.com/sham2k/articles/179825.html飞鹰 飞鹰 Wed, 13 Feb 2008 13:02:00 GMT http://www.aygfsteel.com/sham2k/articles/179825.html http://www.aygfsteel.com/sham2k/comments/179825.html http://www.aygfsteel.com/sham2k/articles/179825.html#Feedback 0 http://www.aygfsteel.com/sham2k/comments/commentRss/179825.html http://www.aygfsteel.com/sham2k/services/trackbacks/179825.html 阅读全文 ]]> JAVA 内部cȝ单ȝ http://www.aygfsteel.com/sham2k/archive/2008/02/12/179678.html飞鹰 飞鹰 Tue, 12 Feb 2008 05:12:00 GMT http://www.aygfsteel.com/sham2k/archive/2008/02/12/179678.html http://www.aygfsteel.com/sham2k/comments/179678.html http://www.aygfsteel.com/sham2k/archive/2008/02/12/179678.html#Feedback 15 http://www.aygfsteel.com/sham2k/comments/commentRss/179678.html http://www.aygfsteel.com/sham2k/services/trackbacks/179678.html
外部cL常规的类讉K方式使用内部c,唯一的差别是外部cd以访问内部类的所有方法与属性,包括U有Ҏ与属性。如Q?br />
pinner p = new pinner();
p.index = 20;
p.Print();
---- q种方式适合外部cȝ非staticҎQ?br />
pouter po = new pouter();
pinner pi = po.new pinner();
pi.index = 40;
pi.Print();
---- q种方式适合外部cȝstaticҎQ?br />
内部cȝ似外部类的属性,因此讉K内部cd象时L需要一个创建好的外部类对象。内部类对象通过‘外部cd.this.xxx’的Ş式访问外部类的属性与Ҏ。如Q?br />
System.out.println("Print in inner Outer.index=" + pouter.this.index);
System.out.println("Print in inner Inner.index=" + this.index);
如果需要在其他cM讉K内部c,可以使用Q?br />
(1)外部cL供创建内部类的方法供其他cM用。如Q?br />
// 外部c?br />
pinner getInner()
{
return new pinner();
}
// 其他c?br />
pouter.pinner pi = po.getInner();
pi.Print();
(2)直接创徏内部cȝ对象。如Q?br />
pouter po = new pouter();
pouter.pinner pi = po.new pinner();
pi.Print();
内部cd以声明在外部cȝҎ中或语句块中。如果内部类需要访问包含它的外部类Ҏ或语句块的局部变量或参数Q则该局部变量或参数必须是final的。外部类的其他方法、其他类无法讉K声明在方法内部或块内部的内部cR?br />
如果一个类l承内部c,则创cȝ对象旉提供一个外部类的对象作为构造方法的参数。如Q?br />
class Car
{
class Wheel
{
}
}
class SuperWheel extends Car.Wheel
{
SuperWheel(Car car)
{
car.super();
}
public static void main(String [] args)
{
Car car = new Car();
SuperWheel wl = new SuperWheel(car);
}
}
如果创徏命名的内部类没有多少实际意义Ӟ可以创徏匿名的内部类。比如用内部类实现接口的功?如事件处理器、适配器等)Q而功能的差异较大Q需要根据实际的情况创徏相应的内部类Ӟ可以使用匿名内部cR简单的CZ如下Q?br />
interface WebView
{
void doGet();
}
class A
{
WebView ShowName()
{
return new WebView()
{
void doGet()
{
System.out.println("Name");
}
};
}
WebView ShowCode()
{
return new WebView()
{
void doGet()
{
System.out.println("Code");
}
};
}
}
最后,JAVA 内部c还有一个作用,那就是实现JAVA的多l承。JAVA本n是不允许多承的Q如果我们想一个类l承多个基类Q就可以使用内部cR通过内部cd别承一个基c,外部cd建内部类的对象,q用内部类的方法,变相地实C多ѝ?
]]> JAVA JNI 使用实例 http://www.aygfsteel.com/sham2k/archive/2008/02/11/179602.html飞鹰 飞鹰 Mon, 11 Feb 2008 05:29:00 GMT http://www.aygfsteel.com/sham2k/archive/2008/02/11/179602.html http://www.aygfsteel.com/sham2k/comments/179602.html http://www.aygfsteel.com/sham2k/archive/2008/02/11/179602.html#Feedback 2 http://www.aygfsteel.com/sham2k/comments/commentRss/179602.html http://www.aygfsteel.com/sham2k/services/trackbacks/179602.html
(1)~写JAVA代码Q注明要讉K的本地动态连接库和本地方法;
(2)~译JAVA代码得到.class文gQ?br />
(3)使用javah -jni 生成该类对应的C语言.h文gQ?br />
(4)使用C/C++实现Q?Q生成的.h文g中声明的各函敎ͼ
(5)~译C/C++实现代码生成动态连接库?br />
本文使用一个简单的helloWorldCZ演示JNI的用?br />
Q?Q编写JAVA代码
public class helloWorld
{
public native void SayHello(String name);
static
{
System.loadLibrary("examdll");
}
public static void main(String [] argv)
{
helloWorld hello = new helloWorld();
hello.SayHello("myName");
}
}
Q?Q编译JAVA代码
javac helloWorld.java
Q?Q生成实现函数头文g
javah -classpath . helloWorld
得到的文件内容如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class helloWorld */
#ifndef _Included_helloWorld
#define _Included_helloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: helloWorld
* Method: SayHello
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_helloWorld_SayHello
(JNIEnv *, jobject, jstring);
#ifdef __cplusplus
}
#endif
#endif
Q?Q在VC中实Cq函?br />
#include "helloWorld.h"
#include <stdio.h>
#include <string.h>
void JNICALL Java_helloWorld_SayHello(JNIEnv * env, jobject obj, jstring str)
{
jboolean b = true;
char s[80];
memset(s, 0, sizeof(s));
strcpy_s(s ,(char*)env->GetStringUTFChars(str, &b));
printf("Hello, %s", s);
env->ReleaseStringUTFChars(str , NULL);
}
**** q是JNI的关键:通过env我们可以使用JAVA提供的一l函数操作与转换函数传递的参数?br />
Q?Q编译VC目得到动态连接库 examdll.dll?br />
Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?br />
附:如何操作与返回JAVA的参CcdQ这文章有些实际的例子可供参考:
http://blog.sina.com.cn/s/blog_548cc485010005ct.html
]]>
վ֩ģ壺
ڳ |
|
|
|
|
̨ |
ϽϽ |
|
ǭ |
ͭ |
|
|
ɽ |
ƽ |
ɳ |
|
Ӣɳ |
峣 |
ʲ |
ӳ |
|
|
|
ƽ |
ƽ |
|
|
۰ |
|
|
֬ |
Ϸ |
ϴ |
|
ɽ |
|
|
|
ǧ |
ֶ |
|