自动装配和注解开发

Bean自动装配

autowire = "ByName"

  • bean的id要唯一

  • 和自动注入的属性的set方法的值一致

autowire = "ByType"

  • bean的class要唯一

  • 和自动注入的属性的类型一致

 

使用注解自动装配

  • 可以不编写set方法使用

@Autowired

  1. xml配置中引入context文件头

xmlns:context="http://www.springframework.org/schema/context"
......
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
  1. 开启注解支持

<context:annotation-config/>
  1. 类的属性中添加注解@Autowired

@Qualifier

  • @Qualifier不能单独使用

  • @Qualifier(value = "xxx")

  • @Autowired是根据类型自动装配的,加上@Qualifier则可以根据byName的方式自动装配

@Resource

  • @Resource如有指定的name属性,先按该属性进行byName方式查找装配

  • 其次再进行默认的byName方式进行装配

  • 如果以上都不成功,则按byType的方式自动装配

 

使用注解开发

  • 配置扫描指定包下的注解,扫描了才会生效

<context:component-scan base-package="com.kuang.pojo"/>

@Component

@Component("user")
// 相当于配置文件中 <bean id="user" class="当前注解的类"/>

使用注解添加属性

  • 没提供set方法,直接类中添加@value("值")

  • 提供了set方法,在set方法上添加@value("值")

@Component三个衍生注解

为了更好的进行分层,Spring可以使用其它三个注解,功能一样,目前使用哪一个功能都一样,都是将该类注册到Spring中(装配Bean)

  • @Controller:web层

  • @Service:service层

  • @Repository:dao层

配置类 @Configuration

用于替代xml文件

@Configuration  //代表这是一个配置类
public class MyConfig {
  @Bean //通过方法注册一个bean,这里的返回值就Bean的类型,方法名就是bean的id!
  public Dog dog(){
      return new Dog();
}
}
posted @ 2023-07-14 14:21  Hmzzz2  阅读(5)  评论(0编辑  收藏  举报