⑴ java中spring框架中的beanConfig.xml配置文件放在哪裡呢
這個不是一定的,隨你自己的意思,你可以放在WEB-INF里,也可以放在classpath下。只需在配置web.xml時指定位置即可。
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:beans.xml
</param-value>
</context-param>
上面就是web.xml中對spring容器的初始化配置,<context-param>中<param-value>中的classpath:beans.xml 即是spring配置文件beans.xml的位置(classpath下,在myeclipse的工程中是src目錄下)
⑵ 想請問大仙 bean.xml 文件是配置在哪個路徑下的呀 WEB-INF 路徑下還是 src 或者其他路徑呀
放哪都可以。不過如果你放在別的地方,在spring裡面取就得ApplicationContext c1 = new (new String[] {"../beans.xml"});就得給bean.xml把路徑帶上。
⑶ J2ee中的S2SH怎麼獲取一個Bean,Bean是已經配置在applicationContext.xml文件中的,暫時還不想用註解
你說的兩個問題其實是一個問題,sessionFactory本身也是一個Bean,無非是一個是你自己寫的,一個不是,但是原理一樣,在j2ee中都不用寫那一長串代碼,不知道你是否學過spring的依賴注入,感覺似乎是沒學,推薦你看一下,在applicationContext.xml中配置好以後,只要在web.xml中載入spring的這些配置文件,那麼伺服器會自動將你的applicationContext中所有配置類自動注入進你的項目,就相當於幫你完成了,new Bean()的工作,直接拿來用就好了,舉個例子
public class Bean1{
private Bean2 b = null;
public func(){
對b進行一對操作(不需要寫b = new Bean2(),直接用,因為spring已經幫你注入了 )
}
b的get/set方法(一定要有,註解的話可以不要)
}
相應配置
<bean id = "Bean1" class = "Bean1的項目路徑" >
<property name="b" ref="Bean2"></property>
</bean>
<bean id = "Bean2" class = "Bean2的項目路徑" >
</bean>
還有問題,歡迎追問
⑷ 關於java bean的配置,應該放在哪個文件夾下呢
放在SRC文件夾下,最好新建一個包,將這個文件放在一個包裡面,包命名為Entity就可以了
⑸ bean是怎麼配置的
本篇文章是對在Java中如何獲取Spring中配置的bean進行了詳細的分析介紹,需要的朋友參考下
一、什麼是Spring?
Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架
二、如何在程序中獲取Spring配置的bean呢?
方法一:在初始化時保存ApplicationContext對象
代碼:
復制代碼 代碼如下:
ApplicationContext ac = new ("applicationContext.xml");
ac.getBean("beanId");
說明:這種方式適用於採用Spring框架的獨立應用程序,需要程序通過配置文件手工初始化Spring的情況。
方法二:通過Spring提供的工具類獲取ApplicationContext對象
代碼:
復制代碼 代碼如下:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils
.(ServletContext sc)
ApplicationContext ac2 = WebApplicationContextUtils
.getWebApplicationContext(ServletContext sc)
ac1.getBean("beanId");
ac2.getBean("beanId");
方法三:繼承自抽象類ApplicationObjectSupport
說 明:抽象類ApplicationObjectSupport提供getApplicationContext()方法,可以方便的獲取到 ApplicationContext。Spring初始化時,會通過該抽象類的 setApplicationContext(ApplicationContext context)方法將ApplicationContext 對象注入。
方法四:繼承自抽象類WebApplicationObjectSupport
說明:類似方法三,調用getWebApplicationContext()獲取WebApplicationContext
方法五:實現介面ApplicationContextAware
說明:實現該介面的setApplicationContext(ApplicationContext context)方法,並保存ApplicationContext 對象。Spring初始化時,會通過該方法將ApplicationContext 對象注入。
⑹ java bean文件放哪才能被檢測到
默認情況,tomcat_home下的webapp目錄下:新建個文件夾(名字隨便)
比如叫javatest,在javatest下再新建個文件夾叫WEB-INF,再在WEB-INF下建立classes文件夾.編譯過的java文件就是放到這個文件夾下
但是,只用java文件放到tomcat里似乎什麼也做不了
還得在javatest這個文件夾下建立相應的文件(可以看做訪問java文件的入口)
也就是JSP文件,在JSP文件里有相應的調用javabean的方法,假設JSP名叫:test.jsp
然後在IE上訪問http://localhost:8080/javatest/test.jsp
⑺ java bean應該放在哪裡
java bean就是你源文件的一部分,當然要跟其他的類放在一塊,當編譯成功後,會自動生成class文件,它會自動保存在WEB-INF/class目錄下。調用時也會自動來此尋找。
⑻ java bean的存放目錄
classes下面放的是編譯過的.class文件而不是java文件我覺得你的文件路徑有問題我給你舉個例子比如一個login程序應該是
\webapps\login
\webapps\login\META-INF
\webapps\login\WEB-INF
\webapps\login\WEB-INF\classes
而你的確是\webapps\ROOT\WEB-INF\classes即使直接放在root下也應該是
\webapps\ROOT\login\WEB-INF\classes中間少了一級目錄吧
當你要部署的工程奪得時候我覺得放在root下面不怎麼好,比較亂。
還是放再webapp下面比較好讓我們的root保持一個比較整潔的面貌
也比較利於整理!
我曾經試過直接放到root下不怎麼好用
或者你把你的工程打成war包放在root下看好不好!
⑼ spring 配置的bean在什麼創建
在配置文件在resource目錄下時,可以直接如下配置:
<build/>
<filters>
<filter>${project.basedir}/src/main/resources/environment/env-${profiles.active}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
⑽ java怎麼配置spring的bean
眾所周知,Spring 框架是控制反轉 (IOC) 或依賴性注入 (DI) 模式的推動因素,而這種推動是通過基於容器的配置實現的。過去,Spring 允許開發人員使用基於 XML 的配置,通過利用應用程序上下文 XML 文件來管理 bean 依賴性。此文件處於應用程序的外部,包含 bean 及其與該應用程序的依賴項的定義。盡管使用 XML 配置較為簡單和便捷,但仍有另外一種方法可定義 bean 及其依賴項。這種方法也稱為基於 Java 的配置。不同於 XML,基於 Java 的配置使您能夠以編程方式管理 bean。這可通過運用多種注釋來實現。 這篇文章將演示 Java 配置示例,並將其與傳統 XML 配置方法相對比。本文將按照如下步驟演示基於 Java 的配置的基本用法:
理解 @Configuration 和 @Bean 注釋
使用 注冊配置類
配置 Web 應用程序
實現 bean 生命周期回調和范圍
我們將使用一所在線大學的 「創建課程」 用例。在創建課程的過程中,還會創建主題或者模塊,而各主題可能又有著不同的作業。因此,我們要創建三個 bean,分別為 Course、Mole 和 Assignment。Course bean 將包含一個對 Mole bean 的引用,後者包含對 Assignment bean 的引用。
理解 @Configuration 和 @Bean 注釋
在理想的場景中,您可以在表示應用程序上下文的 XML 中定義 bean。以下代碼展示了創建課程 用例中的上下文 XML 及 bean 定義:
清單 1. XML 與 bean 定義
<beans>
<bean id="course" class="demo.Course">
<property name="mole" ref="mole"/>
</bean>
<bean id="mole" class="demo.Mole">
<property name="assignment" ref="assignment"/>
</bean>
<bean id="assignment" class="demo.Assignment" />
</beans>
以上 XML 就是您在使用 Spring 配置 bean 時通常會編寫的代碼。這段 XML 代碼定義了 Course bean,它引用 Mole bean。Mole bean 有一個 Assignment bean 的引用。您現在要刪除這段 XML,編寫同等效果的 Java 代碼。您將使用基於 Java 的配置定義上面指定的 bean。我們會將 XML 替換為 Java 類,這個 Java 類現在將用作 bean 配置的平台。我們將這個類命名為 AppContext.java。以下代碼展示了 AppContext類。
清單 2. 包含 bean 定義的 AppContext 配置類
@Configuration
public class AppContext {
@Bean
public Course course() {
Course course = new Course();
course.setMole(mole());
return course;
}
@Bean
public Mole mole() {
Mole mole = new Mole();
mole.setAssignment(assignment());
return mole;
}
@Bean
public Assignment assignment() {
return new Assignment();
}
}
正如您通過以上代碼所看到的那樣,現在可以以編程的方式將 bean 定義為基於 Java 的配置的一部分。AppContext 類現在就像 XML 一樣表示配置類。這是通過利用 @Configuration 注釋實現的。@Configuration 注釋位於類的頂端。它告知 Spring 容器這個類是一個擁有 bean 定義和依賴項的配置類。@Bean 注釋用於定義 bean。上述注釋位於實例化 bean 並設置依賴項的方法上方。方法名稱與 bean id 或默認名稱相同。該方法的返回類型是向 Spring 應用程序上下文注冊的 bean。您可使用 bean 的 setter 方法來設置依賴項,容器將調用它們來連接相關項。基於 Java 的配置也被視為基於注釋的配置。
使用 注冊配置類
在傳統 XML 方法中,您可使用 類來載入外部 XML 上下文文件。但在使用基於 Java 的配置時,有一個 類。 類是 ApplicationContext 介面的一個實現,使您能夠注冊所注釋的配置類。此處的配置類是使用 @Configuration 注釋聲明的 AppContext。在注冊了所述類之後,@Bean 注釋的方法返回的所有 bean 類型也會得到注冊。以下代碼演示了 類的使用:
清單 3. 使用 注冊 AppContext 類
public static void main(String[] args) {
ApplicationContext ctx = new (AppContext.class);
Course course = ctx.getBean(Course.class);
course.getName();
}
正如以上代碼所示,AppContext 配置類的注冊方式是將其傳遞給 構造函數。此外,您還可以使用所述上下文類的 register 方法來注冊配置類。以下代碼展示了另外一種方法。
清單 4. 注冊 AppContext 類:另外一種方法
public static void main(String[] args) {
ApplicationContext ctx = new ();
ctx.register(AppContext.class)
}
注冊配置類將自動注冊 @Bean 注釋的方法名稱,因而其對應的 bean 就是 Course、Mole 和 Assignment。隨後您可以使用 getBean 方法來獲取相關的 bean,並調用其業務方法。如您所見,編寫 Java 的配置類並將其注冊到 Spring 上下文非常簡單。下一節將討論如何將基於 Java 的配置與 Web 應用程序配合使用。
配置 Web 應用程序
過去,您通常要利用 XmlWebApplicationContext 上下文來配置 Spring Web 應用程序,即在 Web 部署描述符文件 web.xml 中指定外部 XML 上下文文件的路徑。XMLWebApplicationContext 是 Web 應用程序使用的默認上下文類。以下代碼描述了 web.xml 中指向將由ContextLoaderListener 監聽器類載入的外部 XML 上下文文件的元素。
清單 5. 使用外部 XML 上下文文件的 web.xml
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>sampleServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
...
</web-app>
現在,您要將 web.xml 中的上述代碼更改為使用 類。切記,XmlWebApplicationContext 是 Spring 為 Web 應用程序使用的默認上下文實現,因此您永遠不必在您的 web.xml 文件中顯式指定這個上下文類。現在,您將使用基於 Java 的配置,因此在配置 Web 應用程序時,需要在 web.xml 文件中指定 類。上述代碼將修改如下:
清單 6. 修改後的使用 的 web.xml
<web-app>
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.
support.
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
demo.AppContext
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>sampleServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.
support.
</param-value>
</init-param>
</servlet>
...
</web-app>
以上修改後的 web.xml 現在定義了 上下文類,並將其作為上下文參數和 servlet 元素的一部分。上下文配置位置現在指向 AppContext 配置類。這非常簡單。下一節將演示 bean 的生命周期回調和范圍的實現。
實現 bean 生命周期回調和范圍
生命周期回調
您還可以使用基於 Java 的配置來管理 bean 的生命周期。@Bean 支持兩種屬性,即 initMethod 和 destroyMethod,這些屬性可用於定義生命周期方法。在實例化 bean 或即將銷毀它時,容器便可調用生命周期方法。生命周期方法也稱為回調方法,因為它將由容器調用。使用 @Bean注釋注冊的 bean 也支持 JSR-250 規定的標准 @PostConstruct 和 @PreDestroy 注釋。如果您正在使用 XML 方法來定義 bean,那麼就應該使用 bean 元素來定義生命周期回調方法。以下代碼顯示了在 XML 配置中通常使用 bean 元素定義回調的方法。
清單 7. 使用 XML 方法實現生命周期回調
<bean id="course" class="demo.Course" init-method="setup" destroy-method="cleanup" >
<property name="mole" ref="mole"/>
</bean>
以下代碼演示了使用 Java 配置的生命周期方法
清單 8. 使用 AppContext 配置類實現 bean 生命周期方法
@Configuration
public class AppContext {
@Bean(initMethod = "setup", destroyMethod = "cleanup")
public Course course() {
Course course = new Course();
course.setMole(mole());
return course;
}
@Bean(initMethod = "setup", destroyMethod = "cleanup")
public Mole mole() {
Mole mole = new Mole();
mole.setAssignment(assignment());
return mole;
}
...
}
public class Course {
private Mole mole;
private String name;
public Course() {
}
public void setup() {
this.name = "M100 Pythagoras Theorems"
}
public void setMole(Mole mole) {
this.mole = mole;
}
public void cleanup() {
mole = null;
}
}
上面的代碼重新訪問了 AppContext 配置類。@Bean 注釋現在有兩個額外的屬性,即 initMethod 和 destroyMethod。它們定義了生命周期方法的設置和清除。這些方法是在已經注冊的 bean 中實現的,最終由容器在 bean 初始化及其銷毀之前調用它。這里以 Course bean 為例,提供了生命周期方法實現。所實現的方法是 setup 和 cleanup。同樣,您還可以在 Mole 和 Assignment bean 中實現這些方法。
Bean 范圍
bean 的方法是使用 @Scope 注釋定義的。XML 中實現這一目標的方法是指定 bean 元素中的 scope 屬性。
清單 9. 使用 XML 方法定義 bean 范圍
<bean id="course" class="demo.Course" scope="prototype" >
<property name="mole" ref="mole"/>
</bean>
以下代碼展示了使用 Java 配置的 bean 范圍定義:
清單 10. 使用 AppContext 配置類定義 bean 范圍
@Configuration
public class AppContext {
@Bean(initMethod = "setup", destroyMethod = "cleanup")
@Scope("prototype")
public Course course() {
Course course = new Course();
course.setMole(mole());
return course;
}
...
}
正如您在上面的代碼中所看到的那樣,在 Java 配置類中定義 bean 的范圍非常簡單。上面的 AppContext 配置類使用 @Scope 注釋為 Coursebean 定義了一個 prototype 范圍。默認范圍是 singleton。
利用 Java 配置可以做許多事情。本文只觸及了一些基礎內容。使用 Java 配置並無顯著優勢,它僅僅是 Spring 提供的 XML 配置的替代方法。對於不喜歡在框架中使用 XML 的人來說,這是實現配置的一種出色方法。但缺點也是顯而易見的,如果您對 Java 類中的配置做出了任何更改,就必須重新編譯應用程序。
http://www.ibm.com/developerworks/cn/webservices/ws-springjava/