Spring注解方法学习笔记

@Conponent


@Repostory  @Service  @Controller



<context:component-scan base-package=".....">   可以扫描类上注解

<context:annotation-config/>   只在类方法和类成员上扫描

前者包含后者,


默认情况下,类被自动发现并注册bean的条件是:使用@Component@Repository @Service @Controller注解或者使用@Component的自定义注解



定义bean

扫描过程中组件被自动检测,那么Bean名称是有BeanNameGenerator生成的(几种注解方法都会有一个name属性用于显式设置Bean Name)

@Service(“myMovieLister”)
public class SimoleMoviceLister{
}


@Repository
public class MovieFinderImpl implements MovieFinder{
}
自定义类名为基础,头字母小写 为   movieFinderImpl


作用域(Scope)

@Scope(“singlton”)



@Autowired

可以用在set方法上,成员方法和构造器上


@Qualifier

按类型自动装配可能有多个bean实例的情况,可以使用Spring的@Qualifier注解缩小范围,也可以用于指定单独的构造器参数或方法参数

可用于注解集合类型变量
@Qualifier“(“main”)

private MovieCatalog movieCatalog;      bean id为main的接口实现类

@Autowired适用于字段,构造器,多参数的方法,这些允许在参数级别使用@Qualifier注解缩小范围

@Resource适用于成员变量,只有一个参数的setter方法,所以在目标是构造器或一个多参数方法时,最好使用@Qualifier



增加配置文件

xml形式:  <context:propertu-placeholder location="classpath:/com/acme/jdbc.properties"/>

注解形式:

@Configuration
@ImportResource("classpath:/com/acme/properties-config.xml")
public class AppConfig{
  @Value("$(jdbc.url)")
  private String url;
}



***************************************************************************************************************************************

@Component  @Service  @Repostory @Controller  

@Autowired有个属性(required=false)找不到时也不报错

@Qualifier(“name”)有多个同类型的bean时,指定注入bean的名称   和@Autowired结合使用,自动注入策略就从ByType变成了ByName

@Scope(singlton  propertype)


JSR-250规范定义的注解,   使用JSR-250要注册一个BeanPostProcessor

<bean class="org.springframe.comtext.annotation.CommonAnnotationBeanPostProcessor"/>

@Resource  要引入javax.annotation

@PostConstruct

@PreDestroy


JSR-330规范

@Inject  要引入javax.inject


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值