【Spring】使用注解开发

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 【Spring】使用注解开发,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

闲话

看书的时候真想偷懒,哈哈~

一、前提

使用注解前,必须要进行相关配置,开启注解的支持

<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <!--开启注解的支持,指定扫描这个包,这下面的注解就会生效 -->
    <context:component-scan base-package="com.decade"/>
    <context:annotation-config/>
</beans>

二、注解学习

1、bean的注册和属性注入

@Component:组件,该注解相当于在xml中注册bean,即

<bean id="" class="com.decade.pojo.User"/>

@Value:该注解等价于原来XML配置中的

<property name="name" value="十年"/>

具体Java代码为

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class User {
    @Value("十年")
    public String name;

    // 加在这里也可以 @Value("十年")
    public void setName(String name) {
        this.name = name;
    }
}

写个测试类来测一下

public class MyTest {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
        User user = context.getBean("user", User.class);
        System.out.println(user.name);
    }
}

2、@Component衍生的注解

@Component有几个衍生的注解,在web开发中,我们会按照mvc三层架构进行分层

  • @Repository【dao层】
  • @Controller【Controller层】
  • @Service【Service层】

这四个注解的功能是一样的,都是代表将某个类注册到Spring中,装配bean

3、自动装配注解

  • @Autowired注解是Spring自己定义的,它默认是按照byType的方式实现自动注入,如果存在多个同类型的bean,我们可以使用@Qualifier注解指定使用哪一个bean
  • @Nullable注解,表示当前字段可以为null
  • @Resource注解是JDK自己定义的,它默认是按照byName的方式实现自动注入,但是它也支持byType的方式。如果name匹配不上(即bean的id),那么就会根据type进行匹配

可以参考我的另外一篇博客 【Spring】Bean的作用域以及Bean的自动装配

4、作用域注解

@Scope,假如配置一个单例作用域的bean,就可以使用@Scope(“singleton”)

5、小结

1)XML配置更加万能,适用于任何场景,维护起来比较简单方便
2)建议还是使用XML来管理bean,注解只负责完成属性的注入,对于比较复杂的属性,例如:数据库配置等还是在XML中统一配置较好

如有错误,欢迎指正

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/136785.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!