Spring 構造注入簡單例項
如果想要使用spring來實現依賴注入,需要幾個重要的步驟:
1 定義主要的類和需要分離的屬性。
2 配置bean.xml。通過配置檔案,確定主要的類和屬性之間的關係,以及實現類。
3 通過應用上下文,獲取bean,並進行使用。
專案結構如下所示
注入物件/注入屬性
//Juggler.java
package com.spring.test.action1;
public class Juggler implements Performer{
private int beanBags = 3;
public Juggler(){
}
public Juggler(int beanBags){
this.beanBags = beanBags;
}
public void perform() {
System.out.println("Juggler "+ beanBags +" beanBags");
}
}
//Performer.java
package com.spring.test.action1;
public interface Performer {
void perform() ;
}
//Poem.java
package com.spring.test.action1;
public interface Poem {
void recite();
}
//PoeticJuggler.java
package com.spring.test.action1;
public class PoeticJuggler extends Juggler {
private Poem poem;
public PoeticJuggler(Poem poem){
super();
this.poem = poem;
}
public PoeticJuggler(int beanBags,Poem poem){
super (beanBags);
this.poem = poem;
}
public void perform() {
super.perform();
System.out.println("While reciting...");
poem.recite();
}
}
// Sonnet29.java
package com.spring.test.action1;
public class Sonnet29 implements Poem{
private static String lines = "嘛咪嘛咪哄";
public Sonnet29() {
}
public void recite() {
System.out.println(lines);
}
}
//test.java
package com.spring.test.action1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
// Performer performer = (Performer)ctx.getBean("duke");
// performer.perform();//Juggler 15 beanBags
Performer performer1 = (Performer)ctx.getBean("poeticDuke");
performer1.perform();
}
}
//bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="duke" class="com.spring.test.action1.Juggler">
<constructor-arg value="15"/>
</bean>
<bean id="sonnet29" class="com.spring.test.action1.Sonnet29"/>
<bean id="poeticDuke" class="com.spring.test.action1.PoeticJuggler">
<constructor-arg value="15"/>
<constructor-arg ref="sonnet29"/>
</bean>
</beans>
//輸出結果
Juggler 15 beanBags
While reciting...
嘛咪嘛咪哄
相關推薦
Spring 構造注入簡單例項
如果想要使用spring來實現依賴注入,需要幾個重要的步驟: 1 定義主要的類和需要分離的屬性。 2 配置bean.xml。通過配置檔案,確定主要的類和屬性之間的關係,以及實現類。 3
Spring構造注入迴圈依賴(BeanCreationException/BeanCurrentlyInCreationException)及其解決辦法
1.什麼是迴圈依賴 在說什麼是迴圈依賴之前,不妨使用程式碼,先丟擲這個異常,bug重現一下。 工程目錄如下: 注意: 本文中只需要一個配置檔案:spring.xml,兩個bean:User和Role
struts框架整合spring框架的簡單例項
本片文章寫了簡單struts框架與spring框架整合,本文未寫有關struts框架的內容,只寫了spring整合部分的內容,有需要的同學請參考初級學struts(一)搭建基本的struts框架。 注:建議先參考上面的連結搭建struts框架無錯誤後,再看本文整合sprin
[轉]Spring依賴注入和例項化(new)的差別
Spring依賴注入和例項化(new)的差別。 Sping為什麼使用依賴注入而不使用例項化物件的方式? 首先說明一下概念 依賴注入(Dependency of Injection)和控制反轉(Inversion of Control 簡稱
spring:一個簡單例項之對DAO的支援
spring 對 DAO 的支援~~ 1、在 MySQL 中建立 db_spring 資料庫,新建 t_student 表 DROP TABLE IF EXISTS `t_student`; C
利用hackbar進行sql注入簡單例項
這個簡單的例項是對一個網址進行sql注入,獲得管理員的賬號和密碼 步驟如下: (1)先猜解當前網頁的欄位數 在hackbar的輸入框中輸入: http://www.xxx/news_deta
Spring 註解版簡單例項之強大的@Component(二)
1 接上一篇文章<Spring 註解版簡單例項(一)>,此處為 @Component與@Resource相結合 在applicationContext.xml 檔案中使用<context:component-scan>的效果,大大的減少了配置檔案
spring-clound的簡單例項
1 第一步 1)建立eureka服務中心 //相當於dubbo使用zookeeper的原理 pom.xml <depen
利用反射實現簡單的Spring註解注入例項
一時興起,這兩天看了看Spring的原始碼,就想寫一個簡單的Spring利用註解注入!!Spring的註解注入方式給了我們很方便的好處!大家應該都瞭解Spring的注入原理,在這裡寫下一個非常簡單的使用註解來注入的例項,做個小小的筆記! 要使用註解,那就絕對和反射離不開。摘
Spring構造方法注入
預設情況下applicationContext.xml檔案中配置的程式可以通過Spring自動例項化物件。 示例: package com.javaketang.test; public class User{ privete String name;//使
spring setter注入 構造器 順序
public class AwareBean implements BeanFactoryAware, BeanNameAware, ApplicationContextAware, InitializingBean { private String beanName; priv
後端-框架-Spring-IoC-contructor-arg-構造注入
後端-框架-Spring-IoC-contructor-arg public class UserServiceImpl implements UserService { // 宣告介面型別的引用,和具體實現類解耦合 private UserDao dao; private St
Spring依賴注入(構造引數注入、集合,陣列屬性注入、XML自動注入 ,全註解配置)
依賴注入 構造引數注入 --> 常用的是方案一和方案二 MyBean類 YouBean類 <?xml version="1.0" encodin
Spring AOP簡介及簡單例項
一、SpringAOP 簡介 1.AOP思想: AOP即面向切面程式設計,可以說是OOP的補充和完善。它利用一種稱為"橫切"的技術,剖解開封裝的物件內部,並將那些影響了多個類的公共行為封裝到一個可重用模組,並將其命名為"Aspect",即切面。 &n
Spring Boot整合Thymeleaf簡單例項
1、定義 Thymeleaf是一種用於Web和獨立環境的現代伺服器端的Java模板引擎。 2、簡單例項 (1)目錄結構 (2)MySpringBootApplication.java pa
SQL注入的一個簡單例項
<p>很多Web應用程式都使用資料庫來儲存資訊。SQL命令就是前端Web和後端資料庫之間的介面,使得資料可以傳遞至Web應用程式。很多Web站點都會利用使用者輸入的引數動態地生成SQL查詢要求,攻擊者通過在URL、表單域,或者其他的輸入域中輸入自己的
Spring中@Async用法詳解及簡單例項
Spring中@Async用法 引言: 在Java應用中,絕大多數情況下都是通過同步的方式來實現互動處理的;但是在處理與第三方系統互動的時候,容易造成響應遲緩的情況,之前大部分都是使用多執行緒來完成此類任務,其實,在spring 3.x之後,就已經內建了@Async來完美解決這個問題,本文將完成
Spring boot專案搭建及簡單例項
Spring boot專案搭建 Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Bo
spring 4.0 AOP (使用AspectJ的註解方式 的aop實現)簡單例項
AspectJ:Java 社群裡最完整最流行的 AOP 框架. spring aop 配合使用aspectj(AOP框架)實現我們所需的aop功能 在 Spring 中啟用 AspectJ 註解支援
spring boot 整合WebService Cxf簡單例項(rest)
例子如下pom檔案<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h