Day8 spring 注解开发

1 前言

使用注解类代替xml配置,使用注解代理xml中的标签

2 标签

2.1 用于Bean(类)上的常见注解

2.1.1 @Component

步骤:

  • 在xml中配置包扫描,使得spring知道在哪些类上加上@Component

  • 在特定类上加上@Component

  • 测试


/**
 * @author : msf
 * @date : 2023/1/24
 */

public class ApplocatoonContextTest {
    public static void main(String[] args) {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao = (UserDao) context.getBean("userDao");
        System.out.println("userDao = " + userDao);
    }
}

<!--配置包扫描-->
    <context:component-scan base-package="cn.msf"/>

@Component("userDao")
public class UserDaoImpl implements UserDao {
}

测试


/**
 * @author : msf
 * @date : 2023/1/24
 */

// <bean id="userDao" class="cn.msf.dao.impl.UserDaoImpl"/>
// 通过value值设置 beanName
@Component("userDao")
@Scope(value = "singleton")
@Lazy(value = false)

public class UserDaoImpl implements UserDao {
    public UserDaoImpl() {
        System.out.println("userDao创建");
    }
    @PostConstruct
    public void init(){
        System.out.println("userDao初始化");
    }

    @PreDestroy
    public void destroy(){
        System.out.println("userDao销毁");
    }
}

我们知道JavaEE开发是分层的,为了每层的Bean标识语义更加明确,因此Component有如下衍生注解

2.2 用于Bean内部的常见注解

2.2.1 @Value

既可以加载字段上,也可以加在方法上(set方法)。

一般是从外部读入的。

@Value("msf")
    private String username;

    @Value("lisi")
    public void setUsername(String username){
        this.username = username;
    }

2.2.2 @Autowired

根据类型进行注入,如果有同一类型的bean有多个,再尝试根据名字进行二次匹配

2.2.3 @Qualifier

2.2.4@Resource

@Resource = @Autowired + @Qualifier

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兜兜转转m

一毛钱助力博主实现愿望

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值