标签:nbsp framework lstat esc att .com environ style web环境
配置Bean形式:基于xml文件方式、基于注解的方式
在xml文件中通过bean节点配置bean:
<?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"> <bean name="helloSpring" class="com.dx.spring.beans.HelloSpring"> <property name="name" value="Spring"></property> </bean> </beans>
参考:《Spring(二):Spring框架&Hello Spring》中配置过程
id:Bean的名称
1)在IOC容器中必须是唯一的;
2)若id没有指定,Spring会自动将全系nag定型为类名作为Bean的名字;
3)id可以指定多个名字,名字之间可用逗号、分号、或空格分隔。
Bean的配置方式:通过全类名(反射实现,此时要求该bean类拥有一个无参数构造器)、通过工厂方法(静态工厂方法&实例工厂方法)、FactoryBean
1)在Spring IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化。只有在容器实例化后,才可以从IOC容器里获取Bean实例并使用。
2)Spring提供了两种类型IOC容器实现
---BeanFactory:IOC容器的基本实现。BeanFactory是Spring框架的基础设施,面向Spring本身。
---ApplicationContext:提供了更多的高级属性,是BeanFactory的子接口。ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext,而非底层的BeanFactory。
备注:
1)无论使用两种方式的哪一种,配置文件是相同的。
2)如何却别ApplicatinContext是BeanFactory的子接口:
ApplicatinContext的类定义:
// Compiled from ApplicationContext.java (version 1.8 : 52.0, no super bit) public abstract interface org.springframework.context.ApplicationContext
extends org.springframework.core.env.EnvironmentCapable,
org.springframework.beans.factory.ListableBeanFactory,
org.springframework.beans.factory.HierarchicalBeanFactory,
org.springframework.context.MessageSource,
org.springframework.context.ApplicationEventPublisher,
org.springframework.core.io.support.ResourcePatternResolver { // Method descriptor #10 ()Ljava/lang/String; @org.springframework.lang.Nullable public abstract java.lang.String getId(); // Method descriptor #10 ()Ljava/lang/String; public abstract java.lang.String getApplicationName(); // Method descriptor #10 ()Ljava/lang/String; public abstract java.lang.String getDisplayName(); // Method descriptor #16 ()J public abstract long getStartupDate(); // Method descriptor #18 ()Lorg/springframework/context/ApplicationContext; @org.springframework.lang.Nullable public abstract org.springframework.context.ApplicationContext getParent(); // Method descriptor #20 ()Lorg/springframework/beans/factory/config/AutowireCapableBeanFactory; public abstract org.springframework.beans.factory.config.AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws java.lang.IllegalStateException; }从上边我们知道ApplicationContext是继承了org.springframework.beans.factory.ListableBeanFactory,org.springframework.beans.factory.HierarchicalBeanFactory接口,而这两个接口都是继承了org.springframework.beans.factory.BeanFactory接口。
public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; Object getBean(String name) throws BeansException; <T> T getBean(String name, @Nullable Class<T> requiredType) throws BeansException; Object getBean(String name, Object... args) throws BeansException; <T> T getBean(Class<T> requiredType) throws BeansException; <T> T getBean(Class<T> requiredType, Object... args) throws BeansException; boolean containsBean(String name); boolean isSingleton(String name) throws NoSuchBeanDefinitionException; boolean isPrototype(String name) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String name, @Nullable Class<?> typeToMatch) throws NoSuchBeanDefinitionException; @Nullable Class<?> getType(String name) throws NoSuchBeanDefinitionException; String[] getAliases(String name); }因此,说ApplicationContext是BeanFactory的子接口类。
ApplicaionContext
ApplicationContext的主要实现类:
---ClassPathXmlApplicationContext:从类路径下加载配置文件
---FileSystemXmlApplicationContext:从文件系统中加载配置文件。
依赖注入的方式:属性注入;构造函数注入;工厂方法(不推荐、也不常用)
注入属性值细节
自动装配
bean之间的关系:继承;依赖。
bean的作用域:singleton;property;web环境作用域
使用外部属性文件
SPEL
IOC容器中Bean的声明周期
Spring4.x新概念:泛型依赖注入。
标签:nbsp framework lstat esc att .com environ style web环境
原文地址:https://www.cnblogs.com/yy3b2007com/p/9033596.html