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

简介: 1.导入bean首先,Spring xml配置文件,扫描指定包下面的注解,使注解生效:


1.导入bean


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


<context:component-scan base-package="top.imustctf.pojo"/>
<!-- 导入注解的支持 -->
<context:annotation-config/>


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


@Component
public class Xiaoqian {
    public String name = "小钱";
}


现在来测试一下效果吧:


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


导入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;
    }
}


2.衍生注解


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

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


service层:


@Service
public class UserService {
}


dao层:


@Repository
public class UserDao {
}


controller层:


@Controller
public class UserController {
}


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;
    }
}


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;
    }
}


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

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


@Configuration
public class DaheConfig {
    @Bean
    public Xiaoqian getXiaoqian() {
        return new Xiaoqian();
    }
}


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


@Test
public void test() {
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DaheConfig.class);
    Xiaoqian getXiaoqian = (Xiaoqian) context.getBean("getXiaoqian");
    System.out.println(getXiaoqian.getName());  // 小钱
}
目录
相关文章
|
18天前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
|
24天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
36 4
|
6天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
27 4
SpringBoot必须掌握的常用注解!
|
30天前
|
XML Java 数据格式
Spring从入门到入土(bean的一些子标签及注解的使用)
本文详细介绍了Spring框架中Bean的创建和使用,包括使用XML配置文件中的标签和注解来创建和管理Bean,以及如何通过构造器、Setter方法和属性注入来配置Bean。
61 9
Spring从入门到入土(bean的一些子标签及注解的使用)
|
8天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
43 2
|
8天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
26 1
|
17天前
|
XML Java 数据格式
提升效率!Spring Boot 开发中的常见失误轻松规避
本文深入探讨了在 Spring Boot 开发中常见的失误,包括不当使用注解、不良异常处理、低效日志记录等,提供了有效的规避策略,帮助开发者提升代码质量和系统性能,构建更健壮、高效的应用程序。
|
2天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
6 0
|
23天前
|
架构师 Java 开发者
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
在40岁老架构师尼恩的读者交流群中,近期多位读者成功获得了知名互联网企业的面试机会,如得物、阿里、滴滴等。然而,面对“Spring Boot自动装配机制”等核心面试题,部分读者因准备不足而未能顺利通过。为此,尼恩团队将系统化梳理和总结这一主题,帮助大家全面提升技术水平,让面试官“爱到不能自已”。
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
|
3天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
6 0