JDBC
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Action -->
<bean id="action" class="com.spring.demon_02.studentAction">
<property name="Studentservice" ref="service"></property>
</bean>
<!-- Service -->
<bean id="service" class="com.spring.demon_02.studentService">
<property name="Studentdao" ref="dao"></property>
</bean>
<!-- DAO -->
<bean id="dao" class="com.spring.demon_02.studentDao"></bean>
</beans>
<!-- 内部bean -->
<bean id="action2" class="com.spring.demon_02.studentAction">
<property name="Studentservice">
<bean class="com.spring.demon_02.studentService">
<property name="Studentdao">
<bean class="com.spring.demon_02.studentDao"></bean>
</property>
</bean>
</property>
</bean>
xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- bean也相当于实例化一个类 -->
<!-- 1.调用无参构造 -->
<bean id="student" class="First.student" scope="prototype"
lazy-init="true" init-method="init_student"
destroy-method="destroy_student"></bean>
<!-- 2.有参构造 -->
<bean id="student1" class="First.student" lazy-init="true"
scope="singleton" init-method="init_student"
destroy-method="destroy_student">
<constructor-arg value="1" index="0"></constructor-arg>
<constructor-arg value="A" index="1"></constructor-arg>
</bean>
<!-- 3.有参构造 引用其他对象 -->
<bean id="s" class="java.lang.String" lazy-init="true"
scope="singleton">
<constructor-arg value="CCC"></constructor-arg>
</bean>
<bean id="student3" class="First.student" lazy-init="true"
scope="singleton" init-method="init_student"
destroy-method="destroy_student">
<constructor-arg value="1" index="0"></constructor-arg>
<constructor-arg index="1" ref="s"></constructor-arg>
</bean>
<!-- 4.利用工厂模式创建对象 -->
<!-- 实例化一个工厂类 -->
<bean id="usefactory" class="com.spring.demon_01.StudentFactory"></bean>
<!-- 利用工厂去实例化一个类 -->
<bean id="student4" factory-bean="usefactory"
factory-method="getInstance" lazy-init="true"></bean>
<!-- 5,利用 静态方法创建(工厂类) -->
<bean id="student5" class="com.spring.demon_01.StudentFactory"
factory-method="getStaticInstance"></bean>
</beans>
所需依赖文件
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
Student实现类
package First;
public class student {
private int id;
private String name;
public student(int id, String name) {
super();
this.id = id;
this.name = name;
System.out.println("有参构造");
}
public student() {
System.out.println("无参构造");
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void init_student() {
System.out.println("类的开始");
}
public void destroy_student() {
System.out.println("类的结束");
}
@Override
public String toString() {
return "student [id=" + id + ", name=" + name + "]";
}
}
工厂方法构造
package com.spring.demon_01;
import First.student;
public class StudentFactory {
public student getInstance() {
return new student(123, "ABC");
}
public static student getStaticInstance() {
return new student(234, "BCD");
}
}
Main方法实现
package com.spring.demon_01;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import First.student;
/**
* scope="singleton":默认单个对象 scope="prototype":多个对象 lazy-init="default"
*
*/
public class App2 {
public static void main(String[] args) {
ApplicationContext applicationcontext = new ClassPathXmlApplicationContext("bean.xml");
System.out.println("----------------IOC---------------------");
student stu = (student) applicationcontext.getBean("student5");
System.out.println(stu);
((AbstractApplicationContext) applicationcontext).close();
}
}