HelloBean.java
java 代码
- package com.gjx.spring;
-
- import java.util.Date;
-
- public class HelloBean {
- private String name;
-
- private String helloWord;
-
- private Date date;
-
- public HelloBean() {
- }
- public HelloBean(String helloWord,Date date){
- this.helloWord=helloWord;
- this.date=date;
- }
-
- public HelloBean(String name, String helloWord) {
- this.name = name;
- this.helloWord = helloWord;
- }
-
- public String getHelloWord() {
- return helloWord;
- }
-
- public void setHelloWord(String helloWord) {
- this.helloWord = helloWord;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- public Date getDate() {
- return date;
- }
- public void setDate(Date date) {
- this.date = date;
- }
-
- }
hellobean-config.xml
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
-
- <beans>
-
- <bean id="helloBean" class="com.gjx.spring.HelloBean">
- <constructor-arg index="0">
- <value>冬国</value>
- </constructor-arg>
- <constructor-arg index="1">
- <value>你好 </value>
- </constructor-arg>
- </bean>
-
-
- <bean id="date" class="java.util.Date" />
- <bean id="helloBean2" class="com.gjx.spring.HelloBean">
- <constructor-arg index="0">
- <value>哈哈</value>
- </constructor-arg>
- <constructor-arg index="1" type="java.util.Date">
- <ref bean="date"/>
- </constructor-arg>
- </bean>
-
-
- </beans>
测试
java 代码
- package Test.com.gjx.spring;
-
- import java.util.Date;
-
- import junit.framework.TestCase;
-
- import org.springframework.beans.factory.BeanFactory;
- import org.springframework.beans.factory.xml.XmlBeanFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.springframework.core.io.ClassPathResource;
- import org.springframework.core.io.Resource;
-
- import com.gjx.spring.HelloBean;
- import com.gjx.spring.SomeBean;
-
- public class TestHelloBean extends TestCase {
-
-
-
-
- public void testHelloWord() {
- Resource rs = new ClassPathResource("hellobean-config.xml");
- BeanFactory factory = new XmlBeanFactory(rs);
- HelloBean hello = (HelloBean) factory.getBean("helloBean");
- HelloBean hello2 = (HelloBean) factory.getBean("helloBean2");
-
- System.out.println(hello.getHelloWord()+" "+hello.getName());
-
- System.out.println(hello2.getHelloWord()+" "+(Date)hello2.getDate());
- }
- }
结果:
你好 冬国
哈哈 Fri Aug 17 15:10:23 CST 2007
分享到:
相关推荐
本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过构造函数来传递依赖对象的一种方式。当类有多个构造函数时,Spring会使用带有最多参数的构造函数...
本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...
setter注入是Spring中最常用的注入方式之一。通过在类中定义setter方法,Spring容器可以在创建对象后,通过这些setter方法设置对象的属性值。以下是一个简单的例子: ```java public class User { private String ...
构造器注入则在创建对象时就确保依赖完整,有利于保持对象的封装性,但过多的构造参数可能会导致构造函数过于复杂。 在Spring 4.2.0版本中,这两种注入方式都得到了很好的支持,并且Spring提供了更高级的特性,比如...
Spring提供了多种注入方式,包括set注入、构造注入和自动注入,让我们逐一深入探讨。 1. **Set注入** Set注入是最常见的注入方式,它通过setter方法来设置对象的依赖。首先,你需要在类中声明需要注入的属性,并...
然而,过多的构造参数可能会导致构造函数过于复杂,不易阅读和使用。 总的来说,Spring 的注入方式提供了很大的灵活性,可以根据实际情况选择最合适的注入策略。setter 注入和构造方法注入在实际开发中更为常见,...
虽然它有其局限性,但结合其他注入方式,如构造器注入和基于注解的注入,可以在满足不同需求的同时,保持代码的简洁性和灵活性。理解并熟练掌握这些注入方式,对于提升Spring应用的开发效率和质量具有重要意义。
在Spring Boot应用中,构造器注入是一种常见的依赖注入方式,但它可能会引发循环依赖的问题。循环依赖是指两个或多个Bean之间形成一个闭环,彼此依赖对方,导致Spring容器在初始化Bean时无法确定创建顺序,从而抛出...
本文将深入探讨Spring中的三种依赖注入方式,并结合源码分析其工作原理。 1. **构造器注入** 构造器注入是通过构造函数来传递依赖对象的。当创建一个类的新实例时,Spring容器会调用带有所需参数的构造函数,从而...
标题中的“spring介绍(set和...综上所述,Spring框架中的setter注入和构造器注入是两种重要的依赖注入方式,它们在实际开发中都有着广泛的应用。理解并合理使用这些注入方式,能够帮助我们构建更健壮、可维护的系统。
当类有多个构造函数时,Spring会根据参数类型匹配最合适的构造器进行注入。这种方式强制了类在创建时就需要提供所有依赖,有利于尽早发现依赖问题。 ```java public class UserService { private UserRepository ...
在Spring框架中,构造注入可以通过两种方式实现,一种是使用constructor-arg元素,另一种是使用 @Autowired 注解。使用constructor-arg元素可以将依赖项作为构造器参数传递给对象,而使用 @Autowired 注解可以将依赖...
本资料主要关注两种注入方式:设值注入(Setter Injection)和构造注入(Constructor Injection),并通过XML配置文件进行管理。 设值注入是通过setter方法来注入依赖的。首先,我们需要在类中声明需要注入的属性,...
Spring支持多种类型的构造器注入,包括单一参数的构造器和多个参数的构造器。 1. 单一参数构造器注入 当只有一个参数时,Spring会自动匹配类型并调用相应的构造器。例如: ```java public class UserService { ...
除了Spring内置的注入方式,我们还可以自定义注入逻辑。例如,创建一个自定义注解并使用`@ComponentScan`扫描包含该注解的类,然后在`BeanPostProcessor`中处理这些注解,实现特定的注入行为。 **总结** Spring的...
在Spring中,依赖注入主要有三种方式:构造器注入、setter注入和接口注入。构造器注入是在对象实例化时通过构造函数传入依赖;setter注入则是通过调用对象的setter方法来设置依赖;接口注入则相对较少使用,它通过...
Spring提供了三种主要的注入方式,分别是:构造器注入、setter注入(类型2)和基于注解的注入(类型3)。下面我们将详细探讨这三种注入方式及其应用场景。 ### 1. Setter注入 (Type2) setter注入是最常见的注入方式...
选择哪种注入方式取决于具体需求,构造注入适合对依赖有严格要求的情况,而Set注入则更加灵活,适用于依赖可选或需要后期修改的情况。理解并熟练掌握这两种注入方式,能够帮助开发者更好地利用Spring框架,提高代码...
2. 使用Spring Data JPA:Spring Data JPA是基于JPA(Java Persistence API)的,它提供了一种声明式的方式处理数据库查询。通过定义Repository接口,你可以避免直接编写SQL,减少SQL注入的可能性: ```java public...