• 马上2023年了,你还不会使用Spring注解开发吗?


    马上2023年了,你还不会使用Spring注解开发吗?

    1.导入bean

    首先,Spring xml配置文件,扫描指定包下面的注解,使注解生效:

    <context:component-scan base-package="top.imustctf.pojo"/>
    
    <context:annotation-config/>
    
    • 1
    • 2
    • 3

    在对应包下面建实体类,加入@Component注解,可以自动导入bean

    @Component
    public class Xiaoqian {
        public String name = "小钱";
    }
    
    • 1
    • 2
    • 3
    • 4

    现在来测试一下效果吧:

    @Test
    public void test() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Xiaoqian xiaoqian = context.getBean("xiaoqian", Xiaoqian.class);
        System.out.println(xiaoqian.name);  // 小钱
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    导入bean的同时注入属性:

    要想导入bean的同时注入属性,在set方法或者属性上加入@Value注解即可:

    @Component
    public class Xiaoqian {
        public String name;
    
        public String getName() {
            return name;
        }
    
        @Value("小钱")
        public void setName(String name) {
            this.name = name;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2.衍生注解

    @Component有几个衍生注解,可以自动导入bean,不过分层的注解会使代码整体逻辑更加清晰

    提供MVC三层架构的直接扫描方法注解,具体如下:

    service层:

    @Service
    public class UserService {
    }
    
    • 1
    • 2
    • 3

    dao层:

    @Repository
    public class UserDao {
    }
    
    • 1
    • 2
    • 3

    controller层:

    @Controller
    public class UserController {
    }
    
    • 1
    • 2
    • 3

    3.作用域,设计模式注解

    如果想要对某个类指定特定的设计模式,可以直接使用Spring@Scope注解实现,例如,我们想要指定该类实现一个单例模式:

    @Component
    @Scope("singleton")
    public class Xiaoqian {
        public String name;
    
        public String getName() {
            return name;
        }
    
        @Value("小钱")
        public void setName(String name) {
            this.name = name;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4.XML - JAVA的完全转化

    通过Spring的注解驱动类,我们可以完全的不使用XML文件进行Spring项目开发

    以下是一个实例:

    先定义一个熟悉的pojo类:(使用注解将此pojo类注册到Spring容器中)

    @Component
    @Scope("singleton")
    public class Xiaoqian {
        public String name;
    
        public String getName() {
            return name;
        }
    
        @Value("小钱")
        public void setName(String name) {
            this.name = name;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    开发注解驱动类:(使用@Configuration注解标注)

    待托管的类使用@Bean标注,这个方法的名字相当于原来bean标签中的ID,方法的返回值相当于class

    @Configuration
    public class DaheConfig {
        @Bean
        public Xiaoqian getXiaoqian() {
            return new Xiaoqian();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    现在来愉快的进行测试吧:

    @Test
    public void test() {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DaheConfig.class);
        Xiaoqian getXiaoqian = (Xiaoqian) context.getBean("getXiaoqian");
        System.out.println(getXiaoqian.getName());  // 小钱
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Spring的世界还存在很多的注解,具体可以参见Spring官方文档,这些API类的内容我们现用现查即可

  • 相关阅读:
    力扣刷题记录53.1-----700. 二叉搜索树中的搜索
    C#,数值计算——插值和外推,分段线性插值(Linear_interp)的计算方法与源程序
    [第二章—Spring MVC的高级技术] 2.2 置multipart解析器
    GitHub 标星 120K 的 Java 面试知识点总结,真就物超所值了
    python3读取yaml文件
    ES6...
    【华为OD机试真题 python】按索引范围翻转文章片段【2022 Q4 | 100分】
    03-SDRAM:写操作(突发)
    压缩状态DP位运算
    java毕业设计的影视资讯管理系统mybatis+源码+调试部署+系统+数据库+lw
  • 原文地址:https://blog.csdn.net/Gherbirthday0916/article/details/127730484