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>