Java 如何使用@Autowired注解自动注入bean

Java @Autowired注解自动注入bean

annotationWire.xml (一定记得配置context:annotation-config/)

<?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" xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <context:annotation-config/>
    <bean id="order" class="com.annotationWire.pojo.Order" p:order="202020124546" />
    <bean id="user" class="com.annotationWire.pojo.User" />
</beans>

User类

package com.annotationWire.pojo;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
@Data
public class User {
    private String name;
    @Autowired
    private Order order;
}

Order类

package com.annotationWire.pojo;
import lombok.Data;
@Data
public class Order {
    private String order;
}

测试类

package com.annotationWire;
import com.annotationWire.pojo.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestAnnotation {
    @Test
    public void test(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("annotationWire.xml");
        User student = applicationContext.getBean(User.class);
        System.out.println(student);
    }
}

java配置spring,无法@Autowired自动注入bean的问题

要在配置类上加上@ComponentScan

同时在RootConfigure和ServletConfig两个类上scan的对象是不同的

ServletConfig是用来注册DispatcherServlet的,它只是用来扫描controller层的

RootConfigure用来注册ContextLoaderListener,他扫描的范围是除了controller以外的bean,例如dao,service,bean实体。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决SpringBoot项目使用多线程处理任务时无法通过@Autowired注入bean问题

    最近在做一个"温湿度控制"的项目,项目要求通过用户设定的温湿度数值和实时采集到的数值进行比对分析,因为数据的对比与分析是一个通过前端页面控制的定时任务,经理要求在用户开启定时任务时,单独开启一个线程进行数据的对比分析,并将采集到的温湿度数值存入数据库中的历史数据表,按照我们正常的逻辑应该是用户在请求开启定时任务时,前端页面通过调用后端接口,创建一个新的线程来执行定时任务,然后在线程类中使用 @Autowired 注解注入保存历史数据的service层,在线程类中调用service层保存

  • 详解Spring @Autowired 注入小技巧

    今天和同事讨论到Spring自动注入时,发现有这么一段代码特别地困惑,当然大致的原理还是可以理解的,只不过以前从来没有这么用过.想到未来可能会用到,或者未来看别人写的代码时不至于花时间解决同样的困惑,所以小编还是觉得有必要研究记录一下. 一.同一类型注入多次为同一实例 首先让我们先看下这段代码是什么? @Autowired private XiaoMing xiaoming; @Autowired private XiaoMing wanger; XiaoMing.java package co

  • 基于Spring@Autowired注解与自动装配详谈

    1 配置文件的方法 我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss 拥有 Office 和 Car 类型的两个属性: 清单 3. Boss.java package com.baobaotao; public class Boss { private Car car; private Office office; // 省略 get/setter @Override p

  • 彻底搞明白Spring中的自动装配和Autowired注解的使用

    一.自动装配 当Spring装配Bean属性时,有时候非常明确,就是需要将某个Bean的引用装配给指定属性.比如,如果我们的应用上下文中只有一个org.mybatis.spring.SqlSessionFactoryBean类型的Bean,那么任意一个依赖SqlSessionFactoryBean的其他Bean就是需要这个Bean.毕竟这里只有一个SqlSessionFactoryBean的Bean. 为了应对这种明确的装配场景,Spring提供了自动装配(autowiring).与其显式的装配

  • 注入jar包里的对象,用@autowired的实例

    注入的jar包如果不能直接使用 @autowired 来使用,可以采用如下方法: @Configuration public class DemoConfiguration { @Bean public Demo demo() { return new Demo(); //该对象为Jar包对象 } } 补充知识:引入第三方包 @Autowired Spring注入失败解决方案 一.问题背景 开发工程中,我负责的微服务需要依赖中台服务层,在调用该服务的功能接口时,@Autowired 注入方式启动

  • Java 如何使用@Autowired注解自动注入bean

    Java @Autowired注解自动注入bean annotationWire.xml (一定记得配置context:annotation-config/) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001

  • spring中使用@Autowired注解无法注入的情况及解决

    目录 spring @Autowired注解无法注入 问题简述 原因:(此处只说第二种) 解决方案 @Autowired注解注入失败,提示could not autowire spring @Autowired注解无法注入 问题简述 在使用spring框架的过程中,常会遇到这种两情况: 1.在扫描的包以外使用需要使用mapper 2.同目录下两个controller或者两个service,在使用@Autowired注解注入mapper或者service时,其中一个可以注入,另一个却为空. 原因:

  • Spring使用@Autowired注解实现自动装配方式

    目录 Spring支持注解配置 引入注解依赖 启用注解 使用@Autowired注解实现自动装配 1.IOC容器配置 2.实体类使用@Autowired注解注入属性 3.测试结果 @Autowired注解的使用和注入规则 1.使用在变量域上面 2.@Autowired注解使用在构造器上面 Spring支持注解配置 引入注解依赖 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht

  • Spring自动注入失败的解决方法

    Spring自动注入失败如何解决? 我有一个被Spring @Service注解的类(MileageFeeCalculator),它有一个用@Autowired注入的变量(rateService),但是当我用这个变量的时候,它显示为null.日志显示MileageFeeCalculator bean和MileageRateService bean都被创建了,但是当我调用service上的mileageCharge ()方法时,就会报NullPointerException错误.为什么Spring

  • 解决Spring在Thread中注入Bean无效的问题

    目录 在Thread中注入Bean无效 错误的注入方法 通过封装Thread子类注入 通过外部引入 Spring多线程中bean的注入问题 网上的主要解决方法有 在Thread中注入Bean无效 在Spring项目中,有时需要新开线程完成一些复杂任务,而线程中可能需要注入一些服务.而通过Spring注入来管理和使用服务是较为合理的方式.但是若直接在Thread子类中通过注解方式注入Bean是无效的. 因为Spring本身默认Bean为单例模式构建,同时是非线程安全的,因此禁止了在Thread子类

  • java SpringBoot自定义注解,及自定义解析器实现对象自动注入操作

    # java-SpringBoot自定义参数解析器实现对象自动注入 解析器逻辑流程图表 后台解析注解的解析器 首先,我在java后台编写了一个解析器,代码如下 import com.ruoyi.framework.interceptor.annotation.LoginUser; import com.ruoyi.project.WebMoudle.WebUser.domain.WebUser; import com.ruoyi.project.WebMoudle.WebUser.service

  • @Autowired自动装配,@Bean注入@Primary,@Qualifier优先级讲解

    目录 Autowired自动装配 第一种情况 第二种情况 第三种情况 第四种情况 总结 @Autowired 取值 app.getBean() @Primary 优先 Autowired自动装配 spring利用依赖注入(DI),完成对IOC容器中的各个组件的依赖关系赋值 对同一个Dao类,既有 @Bean 注解声明,又有Autowired 自动装配,分析一下几种情况: 第一种情况 1.如果Dao类中声明了@Repository,且@ComponentScan 添加了dao扫描,则默认会创建一个

  • JAVA解决在@autowired,@Resource注入为null的情况

    使用SpringMVC或者SSH过程中,有时可能会遇到这么一个问题.就是在一个普通的JAVA类(不是controller也不是action类)中无法注入在spring配置文件中配置的bean. 比如你在一个普通java类想调用某个在spring中配置的service,你会发现不管你用@Resource还是@Autowired注解都无法注入,对象始终是null. 那是因为一般普通的Java类没有被spring代理,自然无法通过spring注入相关的对象.难道这样就不能调用了吗?这里提供下面一个类来

随机推荐