标题spring学习笔记——通过spring容器创建java对象
一.实现步骤:
1.创建maven项目
2.加入maven依赖:
spring的依赖
junit依赖
3.创建类(接口和他的实现类)
和没有使用框架一样,就是普通的类
(1)创建一个接口SomeService
package com.springproject;
public interface SomeServive {`
void dosome();//定义了一个dosome()方法
}
(2)创建一个类 SomeServiveImp
package com.springproject;
public class SomeServiveImpl implements SomeServive {
@Override
public void dosome() {//在类中实现接口中的dosome()方法
System.out.println("执行了SomeServiceImpl的dosome方法");
}
}
4.创建spring需要使用的配置文件
声明类的信息,这些类由spring创建和管理
(1)在resources文件下建立一个Beans.xml文件(如果没有就手动建一个文件夹)
(2)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">
<!--告诉spring创建对象
声明bean,就是告诉soring要创建某个类的对象
id:对象的自定义名称,唯一值,spring通过这个名称找到对象;
class:类的全限定名称(不能是接口,因为spring使用的是反射机制,比必须是类)
-->
<!--相当于完成 SomeService someservice= new SomeServiceImpl();
spring就是把创建好的对象放入到map中,spring框架中由一个map存放对象
springmap(“id的值”,对象)
例如:springmap(“someService”,new SomeServiceImpl());
一个bena声明一个对象
-->
<bean id="someServive" class="com.springproject.SomeServiveImpl"/>
</beans>
<!--
spring的配置文件
1.beans:是跟标签,spring把java对象成为bane
2.spring-beans.xsd 是约束条件,和mybais指定dtd是一样的。约束和限制可以出现的标签
-->
5.测试spring创建的对象
package com.springproject;
import org.springframework.context.ApplicationContext;
import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Mytext {
@Test
public void test01(){
//正转控制
SomeServive service =new SomeServiveImpl() ;
service.dosome();
}
@Test
public void test002(){
//使用spring容器创建的对象
//1.指定spring配置的文件名
String config="templates/beans.xml";//在target->class下会生成一个和spring配置的文件名一样的xml文件,在这里需要注意这个文件在什么路径文件夹下。
//2.创建表示spring容器的对象,ApplicationContext
//ApplicationContext就是表示Spring容器,通过容器获取对象了
/*注明:1.spring默认创建java对象的时间:在创建spring容器对象时候
通过读取ClassPathXmlApplicationContext路径下的配置的文件的beans.xml时候就创建好了java对象
只需要通过创建的spring容器对象利用getBean()方法去获取java对象即可。
2.在java对象创建的时候即执行了构造器方法,默认会执行无参构造器,如果重写了构造器方法会执行有参构造器
*/
ApplicationContext ac = new ClassPathXmlApplicationContext(config);//创建了一个容器对象ac。
//从容器中通过容器对象ac获取某个java对象,你要调用的方法
//getBean("配置文件中的bean的id"),并且把它转成希望的类型
SomeServive service=(SomeServive)ac.getBean("someServive");
//使用spring创建好的类对象
service.dosome();
} }