📄 springioc.txt
字号:
一.spring 中 自动绑定机制?
<bean id="ref" autoWrire= />
1.ByType [按类型自动绑定]
2.ByName [按名称自动绑定]
3.constructor[根据构造器进行绑定]
二.集合及数组、Properties类型的注入
实例xml代码如下:
List
Set ----->
<list>
<ref bean="user1"/>
<ref bean="user1"/>
<ref bean="user1"/>
</list>
Map--->
<map>
<entry key="p1">
<ref bean="user1"/>
</entry>
<entry key="p2">
<ref bean="user2"/>
</entry>
<entry key="p3">
<ref bean="user3"/>
</entry>
</map>
Properties--->
<props>
<prop key="some1">
aa
</prop>
<prop key="some2">
bbb
</prop>
<prop key="some3">
ccc
</prop>
</props>
三.Aware相关接口:表示在Spring中实例化Bean之前进行的相关调用。
1.BeanNameAware:表示在Spring中实例化Bean之前进行调用。
代码如下:
import org.springframework.beans.factory.BeanNameAware;
public class HelloBean implements BeanNameAware {
private String name ;
public void setBeanName(String arg0) {
System.out.println(arg0) ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2.ApplicationContextAware:在Bean类被初始化之后,将会被注入ApplicationContext实例。
代码如下:
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class HelloBean implements ApplicationContextAware {
private String name ;
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
HelloBean hb = (HelloBean)arg0.getBean("hello") ;
System.out.println("内部打印 --> "+hb.getName()) ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
四.消息支持:
ApplicationContext 继承了MessageSource接口,用户可以直接使用
配置文件代码如下:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
五.事件监听?
我的分析:事件的触发由TestEvent类进行触发 事件类 DefaultEvent 只要告诉 Spring配制一个自己写的监听器就OK了,监听器就收集某个类触发了某个事件类的信息。
详细代码如下:
自己写个事件来验证Spring示例如下:
监听类:DefaultListener
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
public class DefaultListener implements ApplicationListener {
public void onApplicationEvent(ApplicationEvent arg0) {
System.out.println(arg0.getSource());
}
}
事件类:DefaultEvent
import org.springframework.context.ApplicationEvent;
public class DefaultEvent extends ApplicationEvent {
public DefaultEvent(Object source) {
super(source);
}
}
触发事件类:TestEvent
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestEvent {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext ctx = null ;
ctx = new ClassPathXmlApplicationContext("applicationContext.xml") ;
ctx.publishEvent(new DefaultEvent(TestEvent.class)) ;
}
}
配置文件代码:
<beans>
<bean id="lst" class="DefaultListener"></bean>
</beans>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -