注解IOC——Spring
注解IOC
配置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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置Spring在创建注解时要扫描的包-->
<context:component-scan base-package="com.spring.five"></context:component-scan>
</beans>
常用注解
配置Bean类:
@Component(value=”类标识”):创建被注解类的对象,存入Spring容器中。
value可省略不写,此时类标识时当前类名,首字母小写
@Controller(value=”类标识”): 表现层类
@Service(value=”类标识”): 业务层类
@Repository(value=”类标识”): 持久层类
这三个注解和Component的作用一模一样。Spring提供了不同名称的注解可以用来区分三层架构,使我们对当前类属于哪一层更加清晰。
配置的Bean以键值对(类标识: 类对象) 的形式保存在Spring的Mapper容器中,如下图
注入依赖:
@Autowired:根据类型注入依赖
自动按照类型注入依赖,如果Spring容器中有相同类型的对象时。
如果Spring容器中有多个相同类型的对象时,自动按照与变量名匹配的输入
如果Spring容器中没有相同类型的对象时,报错。
如果Spring容器中有多个类型相同的对象,但变量名都不匹配时,报错。
@Qualifier(value=”id”): 根据id和Autowired类型注入依赖
配置方法的参数:配置参数在容器中匹配的id
@Resource(name=”id”): 根据id注入bean依赖
以上三个主机只能注入bean类型的数据,基本数据和集合类型不能注入,集合类型只能通过xml形式实现。
@Value(value=””):注入基本类型依赖
@Value(value=“value”):注入基本类型和String类型
@Value(value=“${id}”):通过EL表达式,将Spring容器中的数据通过id值区取出
配置作用范围:
@Scope(value=”protytype/singleton”): 配置容器内对象的作用范围
配置声明周期方法
@PostConstruct:在方法上标注,表明此方式是Bean的初始化方法
@PreDestroy: 在方法上标注,表明此方式是Bean的销毁方法
配置文件注解
@Configuration:配置类,当前类是一个注解类
@ComponentScan(value={}): 配置类,Spring在创建容器时要扫描的包
@import(value={class}): 配置类,引入其他配置类当作子配置类,当前配置类加载时,自动加载其子配置类。如:@Import(value = {JdbcConfiguration.class})
@PropertySource(value=”classpath:src”): 配置类,配置properties文件的位置,加载时自动加载类路径下的此配置文件
@Bean(name=”id”): 配置方法,将当前方法的返回值存入容器中
name用于指定bean的id, 不写时,默认id是当前方法的名称
配置方法时,如果方法有参数,则从容器中以AtuoWired的方式自动注入参数。
容器内有相同类型的对象,自动注入参数。
容器内有多个相同参数的对象,按照id值匹配的自动注入参数。
容器内没有相同类型的对象,或有多个类型相同的参数但id值不匹配,则报错