當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring的两种属性注入方式
生活随笔
收集整理的這篇文章主要介紹了
Spring的两种属性注入方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Spring包下載地址:http://repo.spring.io/release/org/springframework/spring/
jar包下載:http://www.manyjar.com/showJar/m.html
?
1.set方式注入
配置文件:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"
?? ?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?? ?xmlns:p="http://www.springframework.org/schema/p"
?? ?xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<!-- 使用set方法注入屬性
?? ?singleton 單實例 默認
?? ?prototype 多實例
-->
<bean id="user" class="com.spring.demo1.User" scope="singleton">
<!-- 注入屬性值
name的屬性值就是類里面定義的屬性名稱
value設置具體值
-->
<property name="bookname" value="程序設計"></property>
</bean>
</beans>
測試代碼:
package com.spring.demo1;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIOC {
?? ?public static void main(String[] args) {
?? ??? ?//1.加載spring配置文件,根據配置創建對象
?? ??? ?ApplicationContext context = (ApplicationContext) new ClassPathXmlApplicationContext("config.xml");
?? ??? ?//2.得到配置創建的對象
?? ??? ?User user=(User) context.getBean("user");//強轉,引號內為配置文件中的id名
?? ??? ?User user1=(User) context.getBean("user");
?? ??? ?System.out.println(user);//單實例輸出地址
?? ??? ?System.out.println(user1);//多實例輸出地址不一樣
?? ??? ?user.add();//方法調用
?? ?}
}
package com.spring.demo1;public class User {private String bookname;//只需要構造一個set方法public void setBookname(String bookname) {this.bookname = bookname;}public void add(){System.out.println("bookname......"+bookname);}}
測試結果:
?
?
?
?
2.有參構造注入
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"><bean id="HelloWorld" class="com.gc.action.HelloWorld"><!-- 有參構造注入 --> <constructor-arg index="0"><value>HelloWorld1</value> </constructor-arg> </bean> </beans>測試代碼:
package com.gc.test;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import com.gc.action.HelloWorld;public class TestHelloWorld {public static void main(String[] args) {ApplicationContext actx=(ApplicationContext) new ClassPathXmlApplicationContext("applicationContext.xml");HelloWorld helloworld=(HelloWorld) actx.getBean("HelloWorld");System.out.println(helloworld.getMsg());} } package com.gc.action;public class HelloWorld {public String msg=null;//添加構造方法實現構造注入public HelloWorld(String msg) {super();this.msg = msg;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}結果:
?新看了一個P名稱空間注入:
config.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- 引入p名稱空間 ,最后以p結尾--> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- p名稱空間注入 --> <bean id="person" class="com.spring.property.Person" p:name="lucy"></bean> </beans>Person.java
package com.spring.property;public class Person {private String name;public void setName(String name) {this.name = name;}public void test1(){System.out.println("person"+name);} }Testp.java
package com.spring.property;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class Testp {public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("config.xml");Person person=(Person) context.getBean("person");person.test1();} }測試結果:
?
轉載于:https://www.cnblogs.com/liurg/p/7942374.html
總結
以上是生活随笔為你收集整理的Spring的两种属性注入方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三课——MFC编程
- 下一篇: 利用js实现 禁用浏览器后退| 去除上