Spring程序的创建:
1.创建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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="conn" class="com.MyTest.conn"></bean>
</beans>
2.通过 ApplicationContext ac=new ClassPathXmlApplicationContext(“bean.xml”);来获取创建的容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
3.通过 conn co=(conn)ac.getBean(“conn”);来拿到我们想用到的类对象。
conn co=(conn)ac.getBean("conn");
以上步骤简单的实现了IOC控制反转功能,交由IOC容器管理类的创建。
然后看下具体的实现,一个是启动类ui.class,一个是功能类conn.class
package com.MyTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class ui {
public static void main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
conn co=(conn)ac.getBean("conn");
System.out.println(co);
}
}
然后是conn.class
package com.MyTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class conn{
public String getMysqlData() throws Exception{
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true"
,"root","123456");
PreparedStatement ps=conn.prepareStatement("select * from user");
ResultSet resultSet=ps.executeQuery();
String res="";
while (resultSet.next()){
res+=resultSet.getString(1);
}
conn.close();
ps.close();
resultSet.close();
return res;
}
}
运行结果:
"D:\IntelliJ IDEA 2019.2\jbr\bin\java.exe" "-javaagent:D:\IntelliJ IDEA 2019.2\lib\idea_rt.jar=61845:D:\IntelliJ IDEA 2019.2\bin" -Dfile.encoding=UTF-8 -classpath "D:\IntelliJ IDEA 2019.2\Test\target\classes;C:\Users\12733\.m2\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar;C:\Users\12733\.m2\repository\com\google\protobuf\protobuf-java\3.6.1\protobuf-java-3.6.1.jar;C:\Users\12733\.m2\repository\org\springframework\spring-context\5.0.3.RELEASE\spring-context-5.0.3.RELEASE.jar;C:\Users\12733\.m2\repository\org\springframework\spring-aop\5.0.3.RELEASE\spring-aop-5.0.3.RELEASE.jar;C:\Users\12733\.m2\repository\org\springframework\spring-beans\5.0.3.RELEASE\spring-beans-5.0.3.RELEASE.jar;C:\Users\12733\.m2\repository\org\springframework\spring-core\5.0.3.RELEASE\spring-core-5.0.3.RELEASE.jar;C:\Users\12733\.m2\repository\org\springframework\spring-jcl\5.0.3.RELEASE\spring-jcl-5.0.3.RELEASE.jar;C:\Users\12733\.m2\repository\org\springframework\spring-expression\5.0.3.RELEASE\spring-expression-5.0.3.RELEASE.jar" com.MyTest.ui
8月 11, 2019 8:54:57 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@726f3b58: startup date [Sun Aug 11 20:54:57 CST 2019]; root of context hierarchy
8月 11, 2019 8:54:57 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [bean.xml]
com.MyTest.conn@41a0aa7d
可以看到输出了类的hashcode