Spring的自动装配及注解开发(“最易懂得Spring学习”)(四)

简介: 九、使用java的方式配置Spring

九、使用java的方式配置Spring


接下来完全不适用Spring的xml配置,全权交给Java来做。


javaConfigSpring的一个子项目,在Spring4之后,它成为了一个核心功能。


微信图片_20211230153405.png


package com.hxl.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//这里的这个注解的意思是说明这个类被Spring接管了,注册到了容器中
@Component
public class User {
    private String name;
    public String getName() {
        return name;
    }
    //属性注入值
    @Value("王木木")
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

package com.hxl.config;
import com.hxl.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
//这个也会被Spring容器托管,注册到容器中,因为他本身就是一个@Component
//@Configuration代表这是一个Spring配置类,就和我们之前看的beans.xml是一样的
@Configuration
/*
也可以通过下面的方式进行扫描包
*/
@ComponentScan("com.hxl.pojo")
public class WmmConfig {
    /*注册一个bean,就相当于我们之前写的一个bean标签。
    这个方法的名字,就相当于bean标签的id属性
    这个方法的返回值,就相当于bean标签的class属性
     */
    @Bean
    public User user(){
        return new User();//返回要注入到bean的对象
    }
}

@Import

package com.hxl.config;
import com.hxl.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
//这个也会被Spring容器托管,注册到容器中,因为他本身就是一个@Component
//@Configuration代表这是一个Spring配置类,就和我们之前看的beans.xml是一样的
@Configuration
/*
也可以通过下面的方式进行扫描包
@ComponentScan("com.hxl.pojo")
*/
//将两个配置类搞成一个
@Import(WmmConfig.class)
public class WmmConfig2 {
    /*注册一个bean,就相当于我们之前写的一个bean标签。
    这个方法的名字,就相当于bean标签的id属性
    这个方法的返回值,就相当于bean标签的class属性
     */
    @Bean
    public User user(){
        return new User();//返回要注入到bean的对象
    }
}

import com.hxl.config.WmmConfig;
import com.hxl.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
    public static void main(String[] args) {
        //如果完全使用了配置类方式去做,我们就只能通过AnnotationConfigApplicationContext上下文来获取容器,通过配置类的class对象加载
        ApplicationContext context = new AnnotationConfigApplicationContext(WmmConfig.class);
        User getUser = (User) context.getBean("user");
        System.out.println(getUser.getName());
    }
}


这种纯java的配置方式,在SpringBoot中随处可见



相关文章
|
17天前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
|
5天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
24 4
SpringBoot必须掌握的常用注解!
|
7天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
41 2
|
7天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
25 1
|
16天前
|
XML Java 数据格式
提升效率!Spring Boot 开发中的常见失误轻松规避
本文深入探讨了在 Spring Boot 开发中常见的失误,包括不当使用注解、不良异常处理、低效日志记录等,提供了有效的规避策略,帮助开发者提升代码质量和系统性能,构建更健壮、高效的应用程序。
|
2天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
6 0
|
14天前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
|
druid Java 数据库连接
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
27天前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
139 2