<?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(定义Bean),交由Spring管理该Bean的创建和与其他Bean对象之间的关系-->
<bean id="OrderDao" class="com.powernode.spring6.dao.OrderDao"/>
<bean id="OrderService" class="com.powernode.spring6.service.OrderService">
<!--注入外部Bean,用REF(references引用)将外部的Bean注入Bean内-->
<property name="orderDao" ref="OrderDao"/>
</bean>
<bean id="OS" class="com.powernode.spring6.service.OrderService">
<property name="orderDao">
<!--在property标签内的就叫内部Bean-->
<bean class="com.powernode.spring6.dao.OrderDao"/>
</property>
</bean>
<bean id="User" class="com.powernode.spring6.Bean.User">
<!--如果使用简单数据类型的set方法,就需要使用value直接赋值了-->
<property name="username" value="张三"/>
<property name="age" value="20"/>
<property name="password" value="123456"/>
</bean>
<bean id="SimpleValueType" class="com.powernode.spring6.Bean.SimpleValueType">
<property name="age" value="20"/>
<property name="ages" value="20"/>
<property name="username" value="张三"/>
<property name="flag" value="false"/>
<property name="F" value="false"/>
<property name="seasons" value="WINTER"/>
<property name="clazz" value="java.lang.String"/>
<property name="c" value="男"/>
<property name="character" value="女"/>
<property name="f" value="true"/>
<!--日期最好用引用注入,用ref引入(格式过于复杂)-->
<property name="birthday" value="Fri Aug 04 11:48:02 CST 2023"/>
</bean>
<bean id="MyDataSource" class="com.powernode.spring6.jdbc.MyDataSource">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:13306/spring6"/>
<property name="username" value="root"/>
<property name="password" value="abc123"/>
</bean>
</beans>
<?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(定义Bean),交由Spring管理该Bean的创建和与其他Bean对象之间的关系-->
<bean id="OrderDao" class="com.powernode.spring6.dao.OrderDao"/>
<bean id="OrderService" class="com.powernode.spring6.service.OrderService">
<!--注入外部Bean,用REF(references引用)将外部的Bean注入Bean内-->
<property name="orderDao" ref="OrderDao"/>
</bean>
<bean id="OS" class="com.powernode.spring6.service.OrderService">
<property name="orderDao">
<!--在property标签内的就叫内部Bean-->
<bean class="com.powernode.spring6.dao.OrderDao"/>
</property>
</bean>
<bean id="User" class="com.powernode.spring6.Bean.User">
<!--如果使用简单数据类型的set方法,就需要使用value直接赋值了-->
<property name="username" value="张三"/>
<property name="age" value="20"/>
<property name="password" value="123456"/>
</bean>
<bean id="SimpleValueType" class="com.powernode.spring6.Bean.SimpleValueType">
<property name="age" value="20"/>
<property name="ages" value="20"/>
<property name="username" value="张三"/>
<property name="flag" value="false"/>
<property name="F" value="false"/>
<property name="seasons" value="WINTER"/>
<property name="clazz" value="java.lang.String"/>
<property name="c" value="男"/>
<property name="character" value="女"/>
<property name="f" value="true"/>
<!--日期最好用引用注入,用ref引入(格式过于复杂)-->
<property name="birthday" value="Fri Aug 04 11:48:02 CST 2023"/>
</bean>
<bean id="MyDataSource" class="com.powernode.spring6.jdbc.MyDataSource">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:13306/spring6"/>
<property name="username" value="root"/>
<property name="password" value="abc123"/>
</bean>
</beans>
package com.powernode.spring6.Bean;
public class User
{
//String是简单类型,int也是简单类型
private String username;
private int age;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setAge(int age) {
this.age = age;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", age=" + age +
", password='" + password + '\'' +
'}';
}
}
package com.powernode.spring6.Bean;
public class User
{
//String是简单类型,int也是简单类型
private String username;
private int age;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setAge(int age) {
this.age = age;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", age=" + age +
", password='" + password + '\'' +
'}';
}
}
package com.powernode.spring6.jdbc;
import javax.sql.DataSource;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.logging.Logger;
//数据源是用来获取连接对象的,所有的数据源都要实现java规范,javax.sql.DataSource
//凡是能提供connection对象的就是数据源
public class MyDataSource implements DataSource//把数据源交由Spring管理
{
private String driver;
private String url;
private String username;
private String password;
@Override
public String toString() {
return "MyDataSource{" +
"driver='" + driver + '\'' +
", url='" + url + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public void setDriver(String driver) {
this.driver = driver;
}
public void setUrl(String url) {
this.url = url;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
//获取数据库连接对象的时候需要4个信息,driver,url,username,password
@Override
public Connection getConnection() throws SQLException {
return null;
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return null;
}
@Override
public PrintWriter getLogWriter() throws SQLException {
return null;
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
}
@Override
public int getLoginTimeout() throws SQLException {
return 0;
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
return null;
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
return null;
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return false;
}
}
package com.powernode.spring6.jdbc;
import javax.sql.DataSource;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.logging.Logger;
//数据源是用来获取连接对象的,所有的数据源都要实现java规范,javax.sql.DataSource
//凡是能提供connection对象的就是数据源
public class MyDataSource implements DataSource//把数据源交由Spring管理
{
private String driver;
private String url;
private String username;
private String password;
@Override
public String toString() {
return "MyDataSource{" +
"driver='" + driver + '\'' +
", url='" + url + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public void setDriver(String driver) {
this.driver = driver;
}
public void setUrl(String url) {
this.url = url;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
//获取数据库连接对象的时候需要4个信息,driver,url,username,password
@Override
public Connection getConnection() throws SQLException {
return null;
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return null;
}
@Override
public PrintWriter getLogWriter() throws SQLException {
return null;
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
}
@Override
public int getLoginTimeout() throws SQLException {
return 0;
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
return null;
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
return null;
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return false;
}
}
package com.powernode.spring6.Bean;
import java.util.Date;
public class SimpleValueType
{
private int age;
private Integer ages;
private boolean flag;
private Boolean F;
private char c;
private Character character;
private Seasons seasons;
private String username;
private Class clazz;
private Date birthday;
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "SimpleValueType{" +
"age=" + age +
", ages=" + ages +
", flag=" + flag +
", F=" + F +
", c=" + c +
", character=" + character +
", seasons=" + seasons +
", username='" + username + '\'' +
", clazz=" + clazz +
", birthday=" + birthday +
'}';
}
public void setAge(int age) {
this.age = age;
}
public void setAges(Integer ages) {
this.ages = ages;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public void setF(Boolean f) {
F = f;
}
public void setC(char c) {
this.c = c;
}
public void setCharacter(Character character) {
this.character = character;
}
public void setSeasons(Seasons seasons) {
this.seasons = seasons;
}
public void setUsername(String username) {
this.username = username;
}
public void setClazz(Class clazz) {
this.clazz = clazz;
}
}
package com.powernode.spring6.Bean;
import java.util.Date;
public class SimpleValueType
{
private int age;
private Integer ages;
private boolean flag;
private Boolean F;
private char c;
private Character character;
private Seasons seasons;
private String username;
private Class clazz;
private Date birthday;
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "SimpleValueType{" +
"age=" + age +
", ages=" + ages +
", flag=" + flag +
", F=" + F +
", c=" + c +
", character=" + character +
", seasons=" + seasons +
", username='" + username + '\'' +
", clazz=" + clazz +
", birthday=" + birthday +
'}';
}
public void setAge(int age) {
this.age = age;
}
public void setAges(Integer ages) {
this.ages = ages;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public void setF(Boolean f) {
F = f;
}
public void setC(char c) {
this.c = c;
}
public void setCharacter(Character character) {
this.character = character;
}
public void setSeasons(Seasons seasons) {
this.seasons = seasons;
}
public void setUsername(String username) {
this.username = username;
}
public void setClazz(Class clazz) {
this.clazz = clazz;
}
}
import com.powernode.spring6.Bean.SimpleValueType;
import com.powernode.spring6.Bean.User;
import com.powernode.spring6.jdbc.MyDataSource;
import com.powernode.spring6.service.OrderService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.Date;
public class SpringDITest
{
public static void main(String[] args) {
System.out.println(new Date());
}
@Test
public void TestSetDI()
{
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("set-di.xml");
OrderService OrderService = applicationContext.getBean("OrderService", OrderService.class);
OrderService.generate();
OrderService = applicationContext.getBean("OS",OrderService.class);
OrderService.generate();
User user = applicationContext.getBean("User", User.class);
System.out.println(user);
SimpleValueType simpleValueType = applicationContext.getBean("SimpleValueType",SimpleValueType.class);
System.out.println(simpleValueType);
applicationContext = new ClassPathXmlApplicationContext("set-di.xml");
MyDataSource MyDataSource = applicationContext.getBean("MyDataSource", MyDataSource.class);
System.out.println(MyDataSource);
}
}
import com.powernode.spring6.Bean.SimpleValueType;
import com.powernode.spring6.Bean.User;
import com.powernode.spring6.jdbc.MyDataSource;
import com.powernode.spring6.service.OrderService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.Date;
public class SpringDITest
{
public static void main(String[] args) {
System.out.println(new Date());
}
@Test
public void TestSetDI()
{
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("set-di.xml");
OrderService OrderService = applicationContext.getBean("OrderService", OrderService.class);
OrderService.generate();
OrderService = applicationContext.getBean("OS",OrderService.class);
OrderService.generate();
User user = applicationContext.getBean("User", User.class);
System.out.println(user);
SimpleValueType simpleValueType = applicationContext.getBean("SimpleValueType",SimpleValueType.class);
System.out.println(simpleValueType);
applicationContext = new ClassPathXmlApplicationContext("set-di.xml");
MyDataSource MyDataSource = applicationContext.getBean("MyDataSource", MyDataSource.class);
System.out.println(MyDataSource);
}
}