Spring学习(二)

Bean的自动装配(Autowiring)

  • no – 缺省情况下,自动配置是通过“ref”属性手动设定。
  • byName – 根据属性名称自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。
  • byType – 按数据类型自动装配。如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它。和bean的id无关。
  • constructor – 与byType方式类似,不同之处在于它应用与构造器参数。如果容器中没有找到与构造器参数类型一致的bean,那么抛出异常。
1
2
3
4
5
6
7
8
9
10
11
12
<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"
default-autowire="byName"
>
<bean id="autoWiringDAO" class="com.test.AutoWiringDAO"></bean>
<bean id="autoWiringService" class="com.test.AutoWiringService">
<!--如果是default-autowire="byName" 不需要设置以下-->
<!--<property name="autoWiringDAO" ref="autoWiringDAO"></property>-->
</bean>
</beans>

Resource

Resource:针对资源文件的统一接口

-UrlResource:URL对应的资源,根据一个URL地址即可创建

-ClassPathResource:获取类路径下的资源文件

-FileSystemResource:获取文件系统里面的资源

-ServletContextResource:ServletContext封装的资源,用于访问ServletContext环境下的资源(需导入spring-web.jar,需在web环境中测试。)

-InputStreamResource:针对于输入流封装的资源

-ByteArrayResource:针对于字节数组封装的资源

ResourceLoader

spring的IOC容器中,所有的Application context都实现了ResourceLoader这个接口,所有的application context都可以用getResource()方法来获取Resource实例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class MoocResource implements ApplicationContextAware{
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
public void resource() throws IOException {
Resource resource = applicationContext.getResource("file:/Users/xxx/Desktop/ssm/springResource/src/com/test/config.txt");
System.out.println(resource.getFilename());
System.out.println(resource.contentLength());
}
}
您的支持将鼓励我继续创作~