javabean的创建过程(如何在java代码中创建applicationcontext.xml中的bean)

:暂无数据 2026-09-19 05:00:01 :1

javabean的创建过程(如何在java代码中创建applicationcontext.xml中的bean)

大家好,关于javabean的创建过程很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何在java代码中创建applicationcontext.xml中的bean的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

如何在java代码中创建applicationcontext.xml中的bean

这样吧,你首先在WEB-INF目录下的web.xml 添加下面的一个节点。例如我的配置名称是beans.xml
《context-param》
《param-name》contextConfigLocation《/param-name》
《param-value》classpath:beans.xml《/param-value》
《/context-param》
按照你的名称修改,然后在JUnit测试的时后新建对象这样写就可以了
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
希望可以帮到你

如何开发会话bean

会话Bean可以分为有状态会话Bean(stateful Bean)和无状态会话Bean(stateless Bean),有状态会话Bean可以在客户访问之间保存数据,而无状态会话Bean不会在客户访问之间保存数据。两者都实现了javax.ejb.SessionBean接口,EJB容器区通过部署文件ejb-jar.xml来判断是否为一个SessionBean提供保存状态的服务,另外,在程序实现上,无状态Bean不能声明实例变量,每个方法只能操作方法传来的参数,如果需要在引用期间维持一些数据状态,以在其他方法中可以引用,则可以把Bean设计成有状态会话Bean。在第二节中我们用一个SatatelessDate Bean例子描述了开发无状态会话Bean的过程及特性,下面的一节将介绍关于有状态会话Bean的一些特性和寿命周期,并用一个例子来证明这些特性。
有状态Session Bean寿命周期
  有状态Session Bean寿命周期由容器控制,Bean的客户并不实际拥有Bean的直接引用,当我们部署一个EJB时,容器会为这个Bean分配几个实例到组件池(component pooling)中,当客户请求一个Bean时,J2EE服务器将一个预先被实例化的Bean分配出去,在客户的一次会话里,可以只引用一次Bean,就可以执行这个Bean的多个方法。如果又有客户请求同样一个Bean,容器检查池中空闲的Bean(不在方法中或事务中,如果一个客户长时间引用一个Bean但执行一个方法后需要等待一段时间再执行另一个方法,则这段时间也是空闲的),如果全部的实例都已用完则会自动生成一个新的实例放到池中,并分配给请求者。当负载减少时,池会自动管理Bean实例的数量,将多余的实例从池中释放。
有状态会话Bean的初始化状态为不存在,当有客户引用一个Bean时,按照顺序调用newInstance()、setSessionContext()和ejbCreate()方法,与第一节中讲到的无状态调用顺序相同。当处于方法现成状态时,如果客户调用remove()方法,则回到不存在状态,并触发Bean的ejbRemove()方法。如果客户长时间不调用Bean或服务器准备释放一些内存资源,则容器将这些Bean从组件池中钝化,钝化过程容器将调用Bean的ejbPassivate()方法,使程序员有机会在钝化Bean时释放分配的资源。当一个客户请求一个被钝化的Bean时,容器可以激活Bean,激活过程容器将调用ejbActivate()放,使程序员有机会在Bean转到方法现成状态时分配Bean所需的资源。
  
  Bean本身可以管理事务(BMT Bean-Managed Transactions),也可以由容器管理事务(CMT Container-Managed Transation)。对于CMT,容器在方法开始时打开事务,在方法结束时实现事务。Bean开发人员可以通过afterBegin()、beforeCompletion()、afterCompletion(Boolean)来获取事务的各个状态,如果afterCompletion(Boolean)中Boolean变量为true表示事务完成,为false表示事务被撤消。
  
  编写一个有状态Session Bean程序
  假设这次我们要为一个基金组织编写一个基金帐户的Bean组件,这个组件将为基金管理系统提供一个基金帐户的基本功能。为了能够描述清楚有状态会话Bean的特性,我们将之简化成提供三个业务逻辑接口:addFunds()方法为一个基金帐户添加基金,removeFunds()方法从基金帐户中取出基金,方法getBalance()为我们提供一个基金帐户的余额查询。我们为这个Bean起名为StatefulAccount
设计一个有状态的Session Bean至少包括四个步骤:
开发主接口
开发组件接口
开发Bean实现类
编写部署文件
  注意:本节假设你使用的Windows操作系统。如果使用其他操作系统,可能影响到存储路径和JDK命令,但这与程序代码和部署文件内容无关。
  
  1.开发主接口(StatefulAccountHome.java):
  
  是由Bean开发人员编写的一个Bean的主接口(interface)程序,负责控制Bean的生命周期(生成、删除、查找Bean)。只需要开发人员给出一个主接口类,类方法的实现由容器来完成。
  
  主接口扩展了javax.ejb.EJBHome接口,参考avax.ejb.EJBHome接口定义如下:
  
   package javax.ejb;
   import java.rmi.Remote;
   import java.rmi.RemoteException;
   
   public interface EJBHome extends Remote{
   public abstract EJBMetaData getEJBMetaData() throws RemoteException;
   public abstract HomeHandle getHomeHandle() throws RemoteException;
   public abstract void remove(Object obj) throws RemoteException,RemoveException;
   public abstract void remove(Handle handle) throws RemoteException,RemoveException;
   }
  
  方法getEJBMetaData()返回EJBMetaData接口的引用,取得Bean的信息,EJBMetaData不是远程接口。这个类扩展了java.io.Serializable,所以可序列化,具有序列化的特性
  
  方法getHomeHandle()返回主对象的句柄,句柄是主接口StatelessAccountHome的持久性引用,这个类扩展了java.io.Serializable,所以可序列化,具有序列化的特性,HomeHandle 对象可以传递给另一个JVM,且不传递安全信息,这样新的应用可以不使用JNDI来查找对象既可以获得这个主接口,并来创建和获得Bean实例。
  
  方法remove()用来删除一个Bean的实例,对于一个会话Bean,执行Remove操作将引用的Bean返回到池中,由池来管理其生命周期。
  
  一般情况下,习惯将主接口的命名规则规定为《bean-name》Home,所以我们把这个主接口类起名为StatefulAccountHome
  
  大部分逻辑方法已经被EJBHome定义,在我们要设计的远程主接口中,不必再重新定义。值得注意的是,我们需要为这个接口定义一个create()方法,用来获得一个实例Bean的引用,返回的对象类型是组件接口类StatefulAccount。与第二节的StatelessDateHome类定义基本相同,不同的是Create()方法需要一个double类型的fund参数,当客户创建一个Bean引用时,我们将通过这个参数初始化基金帐户的余额。Fund数值的状态将由容器来维护。
  
  StatefulAccountHome.java代码:
  
  import java.rmi.RemoteException;
  import javax.ejb.CreateException;
  import javax.ejb.EJBHome;
  
  public interface StatefulAccountHome extends EJBHome{
   public StatefulAccount create(double fund) throws RemoteException,CreateException;
  }
  
  假设我们保存到D:\ejb\StatefulAccount\src\StatefulAccountHome .java
  
  2.开发组件接口(StatefulAccount.java):
  
  当远程用户调用主接口类生成方法(create(double))时,客户要得到一个组件的远程引用,因此EJB容器要求你为这个Bean的所有方法提供一个接口类,而类的实现则与远程主接口StatefulAccountHome 一样由容器在部署时自动生成。
  
  组件接口扩展了avax.ejb.EJBObject接口,参考avax.ejb.EJBObject接口定义如下:
  
   package javax.ejb;
   import java.rmi.Remote;
   import java.rmi.RemoteException;
   
   public interface EJBObject extends Remote{
  public abstract EJBHome getEJBHome() throws RemoteException;
  public abstract Handle getHandle() throws RemoteException;
  public abstract Object getPrimaryKey() throws RemoteException;
  public abstract boolean isIdentical(EJBObject ejbobject) throws RemoteException;
  public abstract void remove() throws RemoteException,RemoveException;
   }
  
  方法getEJBHome()返回远程主接口对象的引用
  
  方法getHandle() 当前组件接口对象的句柄,和远程主接口的句柄HomeHandle一样,这个对象是被序列化的,所以可以保存到本地或通过RMI/IIOP协议传输给其他JVM上的客户使用,而免去JNDI查找和调用主接口的create方法,只要执行Handle.getEJBObject()方法即可取得这个Bean实例的引用。
  
  getPrimaryKey()方法一般用于Entity Bean,如果在Session Bean中调用,抛出java.rmi.RemoteException。
  
  方法isIdentical()用于对当前引用的Bean实例和另一Bean实例进行比较

java中如何根据查询出来的表结构自动生成bean

这个问题可以解决
你可以查出表中的字段,根据这些字段来创建一个bean类,名字可以用System.currentTimeMillis()取得唯一的,这样就可以,还有什么问题的话联系我··

:怎么用Netbean新建一个JAVA源程序

在安装netbean之前 要先安jdk 估计你应该安了。。
具体的我也不记得了,, 大体流程如下:
1.新建项目(最左边那个菜单下)-》java应用程序-》填写项目名。。 包名等(默认值也可以) 确保设置主项目 选上, 创建主类不选, 此时完成建立项目
2.新建文件(在刚刚那个菜单下)-》选择 java类, 取类名字。 然后往建好的文件中写java 代码。(public class 后的类名要和java类的文件名字相同)
3.编写完毕后,右击建好的java类文件(在项目窗口中),选择运行 OK....
如果有用么,, 加分啊。。。谢谢。。

java 的Jbean怎么做啊

首页 新闻 论坛 小组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 第二书店 程序员
搜索 | 收藏 | 打印 | 关闭
社区 》 Java 》 Web 开发
servlet如何调用bean楼主SuperKnight(一年又一年)2005-07-08 14:59:06 在 Java / Web 开发 提问
bean:封正了表单信息
jsp:调交到bean
《jsp:useBean id="bean" class="jbean.bean" scope="page"》
《jsp:setProperty name="bean" property="*"/》

可在servlet里如何把这个bean里的直取出?
package test;
import jbean.bean;
.
.
bean b=new bean();///这样写到能编译通过,但是取直为空

String name=b.getName();

String age=b.getAge();

请教
问题点数:30、回复次数:26
Top
1 楼hellwindy(夜神·月)回复于 2005-07-08 15:09:04 得分 8比如我写的一个注册页,servlet是这样写的

srw.RegisterBean reg = null;
synchronized (_jspx_page_context) {
reg = (srw.RegisterBean) _jspx_page_context.getAttribute("reg", PageContext.PAGE_SCOPE);
if (reg == null){
reg = new srw.RegisterBean();
_jspx_page_context.setAttribute("reg", reg, PageContext.PAGE_SCOPE);
}
}
reg.setUsername(username);
reg.setPass(pass1);
reg.setNickname(nickname);
...
Top
2 楼SuperKnight(一年又一年)回复于 2005-07-08 15:18:12 得分 0 1用PageContext.PAGE_SCOPE来判断要实例化bean ?bean 是在什么时候实例化的?
2synchronized多线程
3_jspx_page_context是什么?
Top
3 楼linjky()回复于 2005-07-08 15:21:35 得分 0 不理解,用了servlet,为什么要在jsp里用bean封装表单的信息呢?应该在servlet里调用bean呀
还用你要非那么用的话是不是应该把bean话在request里传到servlet,然后再用request.getParameter("beanName")取出来呀
反正我是这么认为的。
Top
4 楼wangtong408(wangtong408)回复于 2005-07-08 15:23:06 得分 0 那当然,因为你bean里面就没有数值,最好把它放入到request,session等中,那样get()方法才会起到作用
Top
5 楼wangtong408(wangtong408)回复于 2005-07-08 15:24:08 得分 5《jsp:useBean id="bean" class="jbean.bean" scope="request/session"》
《jsp:setProperty name="bean" property="*"/》
就可以了
Top
6 楼wangtong408(wangtong408)回复于 2005-07-08 15:24:33 得分 0 《jsp:useBean id="bean" class="jbean.bean" scope="request/session"》
《jsp:setProperty name="bean" property="*"/》
就可以了
Top
7 楼SuperKnight(一年又一年)回复于 2005-07-08 15:31:38 得分 0 to:linjky(),我是你那个意思,但总要先放进去在 在servlet里调用bean呀
先在我不知道,如果在servlet里掉用,bean 语法于应该怎么写
Top
8 楼linjky()回复于 2005-07-08 15:42:27 得分 17我觉得以MVC模式应该这么写。这么说吧,假如你的jsp里就有一个用户名的输入框,叫userName,你提交到login的这个servlet。你在login里这么写
String userName=request.getParameter("userName");
loginBean lb=new loginBean();
lb.setUserName(userName);
如果非要在jsp里定义bean,那就按 wangtong408(wangtong408) 的写,然后在servlet里
jbean.bean b=(jbean.bean)request.getParameter("bean");
String name=b.getName();

String age=b.getAge();
应该就可以了
我写的可能还有不清楚的,你再回贴问吧
Top
9 楼SuperKnight(一年又一年)回复于 2005-07-08 15:51:38 得分 0
to:linjky(),恩,这几句话正是我需要的太谢拉,不过有如下问题
Test.java:19: inconvertible types
found : java.lang.String
required: jbean.bean
jbean.bean b=(jbean.bean)request.getParameter("bean");

^
2 errors
不方便的话可以
msn : knight_jiping@hotmail.com
Top
10 楼linjky()回复于 2005-07-08 15:55:42 得分 0 把你的代码放出来吧,我那个request是把这里改了的public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {,你也改改看吧,主要是我不知道你的结构和文件什么的,你按自己的情况相应的改改。
我没用MSN,我也好长时间没用过QQ了,呵呵,就这里吧,反正我没事,我也是新手,就当互相帮助了
Top
11 楼SuperKnight(一年又一年)回复于 2005-07-08 15:56:59 得分 0 package test;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
***隐藏网址***
***隐藏网址***
***隐藏网址***
public class Test extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
jbean.bean b=(jbean.bean)request.getParameter("bean");
String name=b.getName();

String age=b.getAge();
PrintWriter out=response.getWriter();

out.println("《br》name is "+name);
out.println("《br》age is "+age);

out.println("《html》《body》《h1》Thiefesfsef a servlet test.《/h1》《/body》《/html》");
out.flush();
}

}
Top
12 楼SuperKnight(一年又一年)回复于 2005-07-08 15:57:56 得分 0 我有3个文件,一jsp,一个servlet,一个bean

《%@ page contentType="text/html;charset=gb2312" %》
《%@ page import="jbean.bean"%》
《jsp:useBean id="bean" class="jbean.bean" scope="request"》
《jsp:setProperty name="bean" property="*"/》
《/jsp:useBean》
《html》
《body》

《form name="test" action ="/app/Test" method="gst" 》
《input type="text" name="name"》
《input type="text" name="age"》
《input type="submit" value="enter"》

《/form》

《/body》
《/html》
Top
13 楼linjky()回复于 2005-07-08 16:07:28 得分 0 晕,就为了在servlet里显示呀,你在servlet这样写
String name=request.getParameter("name");
String age=request.getParameter("age");
PrintWriter out=response.getWriter();
out.println("《br》name is "+name);
out.println("《br》age is "+age);
这样写就成了,根本用不到bean
Top
14 楼linjky()回复于 2005-07-08 16:08:43 得分 0 还有jsp页面里的《form name="test" action ="/app/Test" method="gst" 》里的method应该等于GET
Top
15 楼SuperKnight(一年又一年)回复于 2005-07-08 16:10:23 得分 0 aiya ,
我的目的不是这样的,这只是第一步,我要接着扩展我的程序,把客户的每一个请求都对应到响应到对应的servlet里,我要学会到底怎样在servlet里获得bean的数据,
Top
16 楼SuperKnight(一年又一年)回复于 2005-07-08 16:13:30 得分 0 大哥,帮帮忙,马上就出来了,就差一步拉,咱们大热天的功夫比白费拉
Top
17 楼SuperKnight(一年又一年)回复于 2005-07-08 16:15:26 得分 0 好眼力,可那不是主要问题,我改过拉,不行
Top
18 楼linjky()回复于 2005-07-08 16:19:38 得分 0 你的bean是在jbean里吗,叫bean?把代码弄出来吧
Top
19 楼linjky()回复于 2005-07-08 16:20:38 得分 0 还要把出错的信息贴上来
Top
20 楼SuperKnight(一年又一年)回复于 2005-07-08 16:21:49 得分 0 package jbean;
public class bean implements java.io.Serializable{

private String name,age;

public void setName(String name)
{this.name=name;
}
public void setAge(String age)
{
this.age=age;
}

public String getAge()
{return this.age;
}

public String getName()
{return this.name;
}
}
Top
21 楼SuperKnight(一年又一年)回复于 2005-07-08 16:23:32 得分 0 Test.java:18: inconvertible types
found : java.lang.String
required: jbean.bean
jbean.bean b=(jbean.bean)request.getParameter("bean");
^
1 error
Top
22 楼SuperKnight(一年又一年)回复于 2005-07-08 16:25:02 得分 0
jbean.bean b=(jbean.bean)request.getServletContext().getParameter("bean");
我试图这样,也行
Top
23 楼linjky()回复于 2005-07-08 16:34:39 得分 0 那是在Application范围下,比较浪费资源好像
Top
24 楼linjky()回复于 2005-07-08 16:36:27 得分 0 我上面的话错了,我看错你的帖子了
Top
25 楼SuperKnight(一年又一年)回复于 2005-07-08 16:38:37 得分 0 jbean.bean b=(jbean.bean)request.getAttribute("bean");
这样是可以编译,但运行时
java.lang.NullPointerException
test.Test.doGet(Test.java:22)
***隐藏网址***
***隐藏网址***
Top
26 楼SuperKnight(一年又一年)回复于 2005-07-08 16:41:21 得分 0 jbean.bean b=(jbean.bean)request.getServletContext().getParameter("bean");
编译也不对,钢材打错拉

关于javabean的创建过程和如何在java代码中创建applicationcontext.xml中的bean的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

javabean的创建过程(如何在java代码中创建applicationcontext.xml中的bean)

本文编辑:admin

本文相关文章:


datacontext(wpf: datacontext是什么意思,还有ElementName)

datacontext(wpf: datacontext是什么意思,还有ElementName)

这篇文章给大家聊聊关于datacontext,以及wpf: datacontext是什么意思,还有ElementName对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月25日 17:10

更多文章:


withdrawal(withdrawal是什么意思)

withdrawal(withdrawal是什么意思)

今天给各位分享withdrawal是什么意思的知识,其中也会对withdrawal是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 07:00

根据流程图怎么编写程序(用c语言根据流程图写程序)

根据流程图怎么编写程序(用c语言根据流程图写程序)

大家好,今天小编来为大家解答以下的问题,关于根据流程图怎么编写程序,用c语言根据流程图写程序这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 06:00

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

大家好,关于在from子句中可以出现很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何在from 子句中嵌套查询下面的语句在access中出错!的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望

2026年10月11日 05:20

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

其实countif函数统计个数怎么用的问题并不复杂,但是又很多的朋友都不太了解countif函数怎么用 详解Excel中countif函数的使用方法,因此呢,今天小编就来为大家分享countif函数统计个数怎么用的一些知识,希望可以帮助到大

2026年10月11日 03:30

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

本篇文章给大家谈谈正则匹配数字之前的字符,以及正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问

2026年10月11日 03:00

register语言学(register语言学)

register语言学(register语言学)

“register语言学”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看register语言学(register语言学)!

2026年10月11日 01:40

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

“系统架构设计师可以直接考吗”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)!

2026年10月11日 01:00

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

大家好,如果您还对orlnsertbootmediinselected不太了解,没有关系,今天就由本站为大家分享orlnsertbootmediinselected的知识,包括我电脑开机显示这个是什么意思or insert boot med

2026年10月10日 23:00

display的用法(display是什么意思 详解display的含义和用法)

display的用法(display是什么意思 详解display的含义和用法)

大家好,如果您还对display的用法不太了解,没有关系,今天就由本站为大家分享display的用法的知识,包括display是什么意思 详解display的含义和用法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月10日 22:00

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

大家好,今天小编来为大家解答以下的问题,关于html全部居中代码,怎么让网页居中显示,html如何让网页居中这个很多人还不知道,现在让我们一起来看看吧!

2026年10月10日 21:10

最近更新

withdrawal(withdrawal是什么意思)
2026-10-11 07:00:01 浏览:0
热门文章

标签列表