Spring基础

发布于:2023-01-17 ⋅ 阅读:(496) ⋅ 点赞:(0)

Spring的配置文件

bean标签的配置

  • id属性:容器中对象的标识,具有唯一性
  • class属性:对象的创建对象对应的类
  • scope属性
    • singleton:单例
    • prototype:多例
      注:两者的区别
      • 生命周期不一样:
        • 创建:单例是配置文件读取时创建,多例是调用时创建
        • 销毁:单例伴随进程结束
      • 单例只有一个实例,多例可以有多个
  • 属性init-method、destroy-method
    初始化以及销毁时的方法的指定

property标签:属性的注入

  • name属性:属性名
  • value属性:基础数据类型的注入
  • ref属性:引用类型的注入

list标签

<!-- 配置文件 -->
<bean id="demo" class="com.demo.DemoBean">
    <property name="strList">
        <list value-type="java.lang.String">
            <value>"list"</list>
        </list>
    </property>
</bean>

map标签

<!-- 配置文件 -->
<bean id="demo" class="com.demo.DemoBean">
    <property name="strMap">
        <map key-type="java.lang.String" value-type="java.lang.String">
            <entry key="key" value="value" />
        </map>
    </property>
</bean>

properties标签

constructor-arg标签

构造方法的参数的注入

Bean实例化的方式

  • 无参构造方法(默认)
<!-- 配置文件 -->
<bean id="demo" class="com.demo.DemoBean"></bean>
  • 工厂静态方法
<!-- 配置文件 -->
<bean id="demo" class="com.demo.FactoryBean" factory-method="getDemoBean"></bean>

//工厂静态方法
public Class FactoryBean{
	public static DemoBean getDemoBean(){
		return new DemoBean;
	}
}
  • 工厂实例方法
<!-- 配置文件 -->
<bean id="factory" class="com.demo.FactoryBean"></bean>
<bean id="demo" factory-bean="factory" factory-method="getDemoBean"></bean>

//工厂实例方法
public Class FactoryBean{
	public DemoBean getDemoBean(){
		return new DemoBean;
	}
}
  • 通过容器获取
//通过容器获取demoBean
ApplicationContext app = new ClassPathXmlApplicationContext("applicationConfig.xml");
DemoBean demo = app.getBean("demo");

Bean的依赖注入(DI)

依赖注入(DI , Dependency Injection)是控制反转(IoC)的一个具体表现

  • set方法
<!-- 配置文件applicationCongfig.xml -->
<bean id="demo" class="com.demo.DemoBean"></bean>

<bean id="blogic" class="com.demo.Blogic">
	<propety name="demoBean" ref="demo" />
</bean>

//依赖注入:将DemoBean注入Blogic
public Class Blogic(){
	private DemoBean demo;
	
	public void setDemoBean(DemoBean demoBean){
		demo = demoBean;
	}
}

//通过容器获取Blogic
ApplicationContext app = new ClassPathXmlApplicationContext("applicationConfig.xml");
Blogic blogic= app.getBean("blogic");

注:P命名空间的注入方法

  • 有参构造方法
<!-- 配置文件applicationCongfig.xml -->
<bean id="demo" class="com.demo.DemoBean"></bean>

<bean id="blogic" class="com.demo.Blogic">
	<constructor-arg name="demoBean" ref="demo" />
</bean>

//依赖注入:将DemoBean注入Blogic
public Class Blogic(){
	private DemoBean demo;
	
	public Blogic(DemoBean demoBean){
		demo = demoBean;
	}
}

//通过容器获取Blogic
ApplicationContext app = new ClassPathXmlApplicationContext("applicationConfig.xml");
Blogic blogic= app.getBean("blogic");
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到