Spring的依赖注入的2种方式(1天时间)

今天花了一天的时间才调试出来

private      接口   实现类的那个bean;

最后面的那个名字不能随便的写,必须是配置文件中,实现类的那个bean

就是后面的那个名字写错了,花了整整一天



必须有这句注解扫描才能扫描到注解



进行注解的配置,不需要get方法和set方法,小龙儿说xml文件配置才需要set方法


package com.baobaotao1;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class CarServiceImpl implements CarService {

     private CarDao carDao;
     public void setCarDao(CarDao carDao) {
          this.carDao = carDao;
   }

        public void produceDi(){
            carDao.produceLun();
            System.out.println("閹绘劒绶垫惔鏇犳磸缂佹瑨婧呯?涳拷");
        }

        public static void main(String[] args){
        System.out.println(123);
        ApplicationContext ctx =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        CarService boss = (CarService) ctx.getBean("carService");
                boss.produceDi();
        }
}

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘carTest‘ defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean ‘carService‘ while setting bean property ‘carService‘; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘carService‘ defined in class path resource [applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property ‘carDao‘ of bean class [com.baobaotao1.CarServiceImpl]: Bean property ‘carDao‘ is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?


 



Spring的依赖注入的2种方式(1天时间)

时间: 2024-12-29 23:20:11

Spring的依赖注入的2种方式(1天时间)的相关文章

SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式

在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做. Spring依赖注入(

峰Spring4学习(2)依赖注入的几种方式

一.装配一个bean 二.依赖注入的几种方式 com.cy.entity   People.java: package com.cy.entity; public class People { private int id; private String name; private int age; public People() { super(); // TODO Auto-generated constructor stub } public People(int id, String n

依赖注入的两种方式并附上例子

1.依赖注入:就是指程序在运行过程中,如果需要另外一个对象协助完成时,无需在代码中创建被调用者,而是依赖外部的注入获取. 2.依赖注入的两种方式: 设置注入:设置注入是通过setter方法注入被调用者的实例. 构造注入:利用构造方法来设置依赖注入的方式称为构造注入. 3.接下来附上例子来说明设置注入 (1).首先,附上设置注入的例子,新建一个Java项目,配置好Spring后,即可,项目结构图如下图所示: (2).首先,新建2个接口,一个Animal接口,一个Person接口,其中Animal接

Spring依赖注入的三种方式

Spring依赖注入(DI)的三种方式,分别为: 1. 接口注入 2. Setter方法注入 3. 构造方法注入 下面介绍一下这三种依赖注入在Spring中是怎么样实现的. 首先我们需要以下几个类: 接口 Logic.java 接口实现类 LogicImpl.java 一个处理类 LoginAction.java 还有一个测试类 TestMain.java Logic.java如下: package com.spring.test.di; public interface Logic { pub

【SSH三大框架】Spring基础第二篇:Spring依赖注入的三种方式

控制反转(Inversion of Control)和依赖注入(Dependency Injection): 应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它.也可以说,依赖被注入到对象中.所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转. 对于依赖注入,有三种方式: 1.使用属性的setter方法注入 2.使用构造器注入 3.使用注解注入 下面我们介绍下这三种方式: 一.使用属性的setter方法注入 首先,我们写一个

spring4之依赖注入的三种方式

1.Setter注入 <bean id="helloWorld" class="com.jdw.spring.beans.HelloWorld"> <property name="name" value="Spring"></property> </bean> 从这给最简单的配置可以得出以下两个结论:一.class属性需要全类名进行配置,说了ioc容器是通过反射进行创建bean的

Spring Ioc-依赖注入的几种方式

一 setter方法注入 配置文件如下: <bean id="helloAction" class="org.yoo.action.SpringSetterHelloAction"><!-- setter injection using the nested <ref/> element --><property name="helloservice"><ref bean="hell

在ASP.NET MVC中使用Unity进行依赖注入的三种方式

在ASP.NET MVC4中,为了在解开Controller和Model的耦合,我们通常需要在Controller激活系统中引入IoC,用于处理用户请求的 Controller,让Controller依赖于ModelRepository的抽象而不是它的实现. 我们可以在三个阶段使用IoC实现上面所说的解耦操作,首先需要简单介绍一下默认情况下Controller的激活过程: 1.用户发送请求黑ASP.NET,路由系统对请求进行解析,根据注册的路由规则对请求进行匹配,解析出Controller和Ac

Spring通过构造方法注入的四种方式

通过构造方法注入,就相当于给构造方法的参数传值 set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选 的,构造注入的优势是通过构造强制依赖关系,不可能实例化不 完全的或无法使用的bean. MemberBean定义四个变量, private String name; private Double salary; private Dept dept; private String sex; 加上构造方法和toString方法:方便测试 Dept: private String dname;