Spring使用Demo及IOC基于配置的实现

Spring的使用的Demo:
1、引入依赖

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-beans</artifactId>
  <version>4.1.7.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>4.1.7.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>4.1.7.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-expression</artifactId>
  <version>4.1.7.RELEASE</version>
</dependency>
<!--log4j日志-->
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
</dependency>
 <!--注解相关jar包-->
<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
</dependency>

2、创建全局的配置文件 spring-config1.xml

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

3、创建类 public class Student { public void talk() { System.out.println("Student.talk...."); } }

4、在配置文件中将Student交给spring容器

5、使用student对象
//获取spring实例
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(“spring-config1.xml”);
//获取student对象
Student student = (Student) context.getBean(“student”);
student.talk();
IOC基于配置的实现
bean的实例化:
三种方式:
第一种:无参构造函数实例化

注意:在使用无参构造时,需要保持类中有无参构造函数
,要么是使用默认的无参构造函数,即类中不能显性实现构造函数
若要显性实现构造函数,则必须显性实现一个无参构造函数

第二种:静态工厂方法实例化
public class StaticFactory {
public static Student getBean() {
return new Student();
}
}

<bean id="student1" class="com.tulun.factory7.StaticFactory" factory-method="getBean"/>

第三种:普通工厂方法实例化
/**

  • 普通工厂
    */
    public class CommonFactory {
    public Student getStudent() {
    return new Student();
    }
    }

DI(依赖注入):
Java中提供的属性注入方式
1、有参构造
2、set方法
3、接口方式
Spring中依赖注入方式:
2种:
第一种:有参构造
第二种:set方法

有参构造
public class Student {
private String name;
//有参构造函数
public Student(String name) {
this.name = name;
}
}

<!--依赖注入方式1:有参构造-->
<bean id="student3" class="com.tulun.bean7.Student" >
    <!--
    通过构造函数注入name属性
    constructor-arg标签:通过构造注入属性
    name属性:类中的属性名
    value属性:指定该属性的值
    -->
    <constructor-arg name="name" value="zhansan"> </constructor-arg>
</bean>

set方法
public class Student {

private String name;

public void setName(String name) {
    this.name = name;
}

}

<!--依赖注入方式2:set方法-->
<bean id="student4" class="com.tulun.bean7.Student">
    <!--通过set方法注入name属性-->
    <property name="name"  value="李四"/>
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值