IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> @org.springframework.beans.factory.annotation.Autowired(required=true)@Autowired报错以及解决方案详解,构造函数使用简介 -> 正文阅读

[Java知识库]@org.springframework.beans.factory.annotation.Autowired(required=true)@Autowired报错以及解决方案详解,构造函数使用简介

构造函数使用简介请看第四点的ModelGG

Autowired 报错

错误内容如下:

***************************
APPLICATION FAILED TO START
***************************

Description:

Field gg in com.sq.statistics.service.test.EE required a bean of type 'com.xxx.xxxx.xxx.xxx' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)

The following candidates were found but could not be injected:
	- User-defined bean method 'setGG' in 'modelFF' ignored as the bean value is null

说明:

@Autowired 一般用来自动装配,但是需要对象注册成bean(有对应实例)。。

可以装配的举例:

1.带有@service的类

会自动注入,注册成bean

2. 带有@Component的类

会自动注入,注册成bean

3.带有@Configuration的类

会自动注入,注册成bean

4. new 出来的对象(需要在一开始就实例化,注册成bean)

下面是详细案例

  • 目录结构
- ModelGG  还讲解了有参构造和无参构造
- ModelFF
- ModelEE
  • 以下是new 出来的对象,被autowired的一个案例。。。差点以为没有实例化

ModelGG - 被new的对象,需要被装配的对象。。

package com.sq.statistics.service.test;

public class ModelGG {
    private static String attribute = "123";//这个属性不能用有参构造变更
    public ModelGG() {
        System.out.println("无参构造方法,和类名同名,在类实例化时调用方法,调用了有参就不会调用无参");
    }
    public ModelGG(String attribute) {
        System.out.println("有参构造方法,和类名同名,在类实例化时调用方法,可以传参赋值类里边的属性。(必须要有无参构造才可以有有参构造),调用了有参就不会调用无参");
        this.attribute = attribute;
    }
    public void setAttribute(String attribute) {
        this.attribute = attribute;
    }
    public void printGGAttribute() {//打印这个类的属性
        System.out.println(attribute);
    }
}

ModelFF - 此处在程序一开始就 将对象new出来了,有对应的实例了,所以可以对ModelGG进行autowired

package com.sq.statistics.service.test;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration //自动注入,程序一开始就注册实例
public class ModelFF {

    @Bean //自动注入,会自动调用
    public ModelGG setGG() {
//        return new ModelGG("gg-gg-gg-gg-gg-gg");
        ModelGG gg = new ModelGG();	
        gg.setAttribute("gg-gg-gg-gg-gg-gg");
        return gg;
    }
}


autowired 了ModelGG

package com.sq.statistics.service.test;

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

import javax.annotation.PostConstruct;

@Component //自动注入,程序一开始就注册实例
public class ModelEE {

    @Autowired
    private ModelGG gg;

    @PostConstruct//bean注入完成后会运行
    public void startWithGG() {
        gg.printGGAttribute();
    }
}

在一个已经注入的类中,@Bean注解,然后new一个对象,,,这个对象,也可以被Autowired

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:33:33  更:2022-05-01 15:36:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:08:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码