java代碼調用bean java代碼調用jsp

怎么在java文件調用spring的bean

Spring中配置的bean是自動加載的,當類調用的時候實例化并返回調用者。

創(chuàng)新互聯(lián)公司成立于2013年,先為紫陽等服務建站,紫陽等地企業(yè),進行企業(yè)商務咨詢服務。為紫陽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

配置:

?xml version="1.0" encoding="UTF-8"?

beans xmlns:xsi=""

xmlns=""

xsi:schemaLocation="

"

!-- 配置一個singleton Bean實例:默認 --

bean id="bean1" class="com.Bean1" /

!-- 配置一個prototype Bean實例 --

bean id="bean2" class="com.Bean2" scope="prototype"/

/beans

程序中獲取bean的操作:

public class SpringTest {

public static void main(String[] args) {

ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");

//判斷兩次請求singleton作用域的Bean實例是否相等

System.out.println(ctx.getBean("bean1")==ctx.getBean("bean1"));

//判斷兩次請求prototype作用域的Bean實例是否相等

System.out.println(ctx.getBean("bean2")==ctx.getBean("bean2"));

}

}

JAVA中究竟什么是bean,它的實質是什么?

分類: 電腦/網(wǎng)絡 軟件

解析:

newblog.sohu/members/wekin/517969

JavaBean是描述Java的軟件組件模型,有點類似于Microsoft的COM組件概念。在Java模型中,通過JavaBean可以無限擴充Java程序的功能,通過JavaBean的組合可以快速的生成新的應用程序。對于程序員來說,最好的一點就是JavaBean可以實現(xiàn)代碼的重復利用,另外對于程序的易維護性等等也有很重大的意義。

比如說一個購物車程序,要實現(xiàn)購物車中添加一件商品這樣的功能,就可以寫

一個購物車操作的JavaBean,建立一個public的AddItem成員方法,前臺Jsp文件里面直接調用這個方法來實現(xiàn)。如果后來又考慮添加商品的時候需要判斷庫存是否有貨物,沒有貨物不得購買,在這個時候我們就可以直接修改JavaBean的AddItem方法,加入處理語句來實現(xiàn),這樣就完全不用修改前臺jsp程序了。

一個簡單的JavaBean

FirstJavaBean.java

import java.io.*;

public class FirstJavaBean {

private String FirstProperty = new String("");

public FirstJavaBean() {}

public String getFirstProperty() {

return FirstProperty;

}

public void setFirstProperty(String value) {

FirstProperty = value;

}

public static void main(String[] args)

{

System.out.println("My First JavaBean!");

}

}

如果運行這個程序,就會出現(xiàn)下面的結果:

First JavaBean!

這是一個很典型的JavaBean的代表,簡單地解釋一下,F(xiàn)irstProperty是其中的一個屬性(Property),外部通過get/set方法可以對這個屬性進行操作,如果您寫過VB的class的話,對這個就再也熟悉不過了。Main方法是為了測試程序用的,寫JavaBean可以先不必加入到Jsp程序中調用,而直接用main方法來進行調試,調試好以后就可以在Jsp程序中調用了。

bie/print_146048m128642

JavaBean 概述

用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的復制和粘貼的功能,而不用關心任何改變。

JavaBean 的發(fā)展

最初,JavaBean的目的是為了將可以重復使用的軟件代碼打包標準。特別是用與幫助廠家開發(fā)在綜合開發(fā)環(huán)境(IDE)下使用的java軟件部件。這些包括如Grid控件,用戶可以將該部件拖放到開發(fā)環(huán)境中。從此,JavaBean就可以擴展為一個java web 應用的標準部件,并且JavaBean部件框架已經(jīng)擴展為企業(yè)版的 Bean(EJB)。

JavaBean需求

JavaBean是java類,屬于某些特定的譯碼知道方針,并且擴展了適應性和范圍,允許用戶訪問內(nèi)部的屬性和方法。通過這些,JavaBean類可以用于下列方法:

1. 在IDE中,JavaBean的功能允許應用開發(fā)者瀏覽其中的方法,即使JavaBean是被編譯的,并且無法利用原始的源文件。

2. 在 Remote Method Invocation(RMI) 的分布式風格中,這項功能聽起來并不讓人興奮,但是在未來的包含企業(yè)版的JavaBean后,將改變這種情況。

3. 為了JavaBean的屬性值和狀態(tài)可以保存到磁盤上。

這里說的有些簡單,如果想了解更多的東西,可以查閱一些資料。

JavaBean設計注意事項

實際應用中,在表現(xiàn)對象或者處理前擴展JavaBean的設計非常有用。通常認為如果提供信息,web開發(fā)者將在功能上滿足擁護對JavaBean的需求。例如: HTML中顯示敏感的數(shù)據(jù)時,用戶可以屏蔽的條目,如密碼、電話號碼等。

良好規(guī)劃設計的JavaBean是值得信賴的。

Java 中的 null 不同于 SQL 中的 null

看這樣一道測試程序:

public class NullTest

{

public static void main(String[] args)

{

int I = 0;

int I = null; not a valid initialization

String str = null;

String strZeroOutValue = “”;

StringBuffer *** = new StringBuffer(“Null test: String initialized as null = “);

*** .append(str);

*** .append(“\n String representing a Zero Out Value:”);

*** .append(strZeroOutValue);

System.out.println( *** .toString());

}

}

這個程序將產(chǎn)生下面的結果:

Null test: String initialized as null = null

String representing a Zero Out Value:

在JavaBean中, 我們將 I 變量聲明為一個 int, 我們必須處理與該變量相關的值,因為I 默認的沒有值,int 類型無法初始化為 null, 如果int 值沒有進行明確的初始化,編譯器將提示錯誤。

執(zhí)行 NullTest 程序,將驗證在文本中空字符串是空值的替代,用于顯示 SQL 的插入和更新。如果我們需要刪除一些信息,通過刪除表單區(qū)域的文本,需要將數(shù)據(jù)庫發(fā)送長度為0的字符串。

盡管大多數(shù)數(shù)據(jù)庫將空字符串作為空值進行操作,如果我們使用的數(shù)據(jù)庫不支持處理空字符串的話,我們必須寫入附加的java代碼,來創(chuàng)建自己的SQL插入聲明。

例如:

if(test.length==0)

{

*** .append(“null”);

}

else

{

*** .append(test);

}

JavaBean 的范圍:

JavaBean 的范圍。 Scope 是一個具有生命時間的變量。JavaBean的范圍在

jsp:useBean scope=”….標志中右邊進行表示。將產(chǎn)生一個JavaBean的快捷參考。

說明:jsp服務器引擎將剝離jsp。。。。標記。并且在最終用戶的瀏覽器上無法顯示實際代碼。

存在下面四種范圍: 頁面、 請求、 對話、 應用。

對話范圍:

對話范圍的JavaBean 主要應用與跨多個頁面和時間段: 例如填充 用戶信息。 添加信息并且接受回饋,保存用戶最近執(zhí)行頁面的軌跡。對話范圍JavaBean保留一些和用戶對話 ID 相關的信息。這些信息來自臨時的對話cookie,并在當用戶關閉瀏覽器時,這個cookie將從客戶端和服務器刪除。

頁面/請求范圍:

頁面和請求范圍的JavaBean有時類似表單 的bean , 這是因為 他們大豆用與處理表單。表單需要很長的時間來處理用戶的輸入,通常情況下用于頁面接受HTTP/POST或者GET請求。另外頁面和請求范圍的bean可以用于減少大型站點服務器上的負載,如果使用對話bean,耽擱的處理就可能會消耗掉很多資源。

應用:

應用范圍通常應用于服務器的部件,例如 JDBC 連接池、應用監(jiān)視、擁護計數(shù)和其他參與用戶行為的類。

在Bean中限制HTML的產(chǎn)生:

理論上,JavaBean 將不會產(chǎn)生任何HTML,因為這是jsp層負責的工作;然而,為了動態(tài)消息提供一些預先準備的格式是非常有用的。產(chǎn)生的HTML將被標注的 JavaBean方法返回。

這里有一些非常重要的事情:

1. 不要試圖在JavaBean返回的HTML中放置任何字體尺寸。

并不是所有的瀏覽器都相同。很多瀏覽器無法處理完整的字體尺寸。

2. 不要試圖在JavaBean返回的HTML中放置任何腳本或者DHTML。

向頁面直接輸出腳本或者DHTML相當于自我毀滅,因為某些瀏覽器版本在處理不正確的腳本時會崩潰(非常少但是有)。如果用戶的JavaBean在運行時是動態(tài)的推出復雜的HTML語言,用戶將陷入調試的噩夢。另外,復雜的HTML將限制JavaBean的壽命和靈活性。

3. 不要提供任何的選擇。

如果用戶使用不同的系統(tǒng)瀏覽頁面,可以提供一種可以替換的方法。

java8 接口中定義的Function中調用Spring的Bean

可以自己寫一個類似找尋Service的工廠...

然后自己function里面用工廠找到對應的Service,再調用Service

@Component

public?class?BeanLocator?implements?BeanFactoryAware?{

private?static?BeanFactory?beanFactory;?//BEAN工廠

@Override

public?void?setBeanFactory(BeanFactory?f)?throws?BeansException?{

this.beanFactory?=?f;

}

/**

*?根據(jù)bean的名字找bean的對象

*

*?@param?name

*?@return

*/

public?static?Object?findBeanByName(String?name)?{

Object?obj?=?null;

try{

obj?=?beanFactory.getBean(name);

}catch?(Exception?e){

}

return?obj;

}

}

這樣之后,你就可以用這個靜態(tài)方法來尋找Service,Service本質也是一個bean嘛

FunctionString,String?myFunction=?s-?{

Servuce?myService?=?(Service)BeanLocator.findBeanByName("Service的名字");

return?myService.format(s);

}

如果不想寫大括號的話,還可以再把這個工廠封裝一下

public?class?ParameterFinder?{

/**

*?根據(jù)bean名字來查詢參數(shù)查找器

*?用于確定一定能找到Bean的情況,否則,找不到Bean會報空指針異常

*?@param?name

*?@param?objs

*?@param?T

*?@return

*/

public?static?String?findParamter(String?serviceName,?String?arg){

Servuce?myService?=?(Service)BeanLocator.findBeanByName(serviceName);

return?myService.format(s);

}

}

最后就可以寫成這樣

FunctionString,String?myFunction=?s-?ParameterFinder.findParamter("ervice的名字",?s);

這樣就好啦(上面的代碼注釋可以忽略掉,我懶的改了,我把自己的項目里遇到的這樣情況就是這么封裝的,但是功能要比這個強大點,所以就剪吧剪吧,截了一些改了一點,就這種樣子)

文章名稱:java代碼調用bean java代碼調用jsp
網(wǎng)頁路徑:http://muchs.cn/article10/doggddo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、動態(tài)網(wǎng)站、網(wǎng)站營銷微信公眾號、響應式網(wǎng)站ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設