@resource或@Autowired Service service不能通过spring注入问题

遇到的主要的问题的原因是:Spring注解扫描不能注入new对象

例如:

@service(orderFactory)
public class OrderFactory implements IOrderFactory{
    public OrderCreate factory(String type){
        if(type != null && type.indexOf("1")! = -1){
            return new OrderOfType1();
        }
    }
}

@service
public class OrderOfType1{
    @Autowired
    public OrderDao orderDao;
    // 此时的orderDao为空,Spring并没有注入进来
}
在使用了new关键词之后,OrderOfType1类并不受Spring管理了,Spring的注解是在Spring实例化的时候扫描注入,在Spring实例化完毕之后如果再new新的对象显然不受Spring管理了,这个对象的属性也就不会再通过spring注入
所以需要做一下修改
@service(orderFactory)
public class OrderFactory implements IOrderFactory{
    @Autowried
    private OrderOfType1 orderOfType1;//修改之后
    public OrderCreate factory(String type){
        if(type != null && type.indexOf("1")! = -1){
            return orderOfType1();
        }
    }
}

修改之后,问题就解决了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注解(Annotation)是Java中的一种特殊语法,用于在代码中添加元数据,以便在运行时进行处理。注解可以用于类、方法、字段等元素上,用来提供元数据信息,比如配置信息、描述信息等。 下面是一些常见的注解及其作用: 1. @RestController @RestController是Spring MVC中的注解,用于标识该类为RESTful风格的控制器。它是@Controller和@ResponseBody的组合注解,表示该类的所有方法都返回JSON或XML格式的数据。 2. @RequestMapping @RequestMapping用于指定请求的URL路径和HTTP请求方法。它可以用在类和方法上,用于处理HTTP请求。当用在类上时,表示该类处理的所有请求都是以该路径为前缀的。 3. @Autowired @AutowiredSpring框架中的注解,用于自动装配依赖对象。它可以用在构造方法、属性和方法上。当Spring容器加载时,会自动扫描所有被@Autowired标注的类,并将其注入到需要的类中。 4. @PostMapping @PostMapping是Spring MVC中的注解,用于指定处理HTTP POST请求的方法。它是@RequestMapping注解的衍生注解。 5. @RequestParam @RequestParam用于指定HTTP请求参数的名称和默认值。它可以用在方法的参数上,用于从HTTP请求中获取参数的值。 6. @Service @ServiceSpring框架中的注解,用于标识该类为业务逻辑层的实现类。它可以用在类上,表示该类是一个服务类。 7. @Resource @Resource是JavaEE中的注解,用于指定依赖注入的名称。它可以用在属性、方法和构造方法上,用于指定需要注入的依赖对象的名称。 使用这些注解可以使代码更加简洁、易读,并且能够提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值