Spring简单实现(新手版)

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();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_40663787/article/details/83960513