在公司做项目中碰到的一些从没有遇到的异常;
公司使用的是注解方式进行sping 的依赖注入;模块间的调用通过接口实现;
这是接口:
里面定义供调用的方法,方法已经被别的模块的类实现;
public interface IFcIntrestDtlService {
public double calculateSumInterest(Date startDate, Date endDate,int interestType,String accTypeCode,String corpCode,String curCode);
List<DecisionFuncValue> calculateSumInterest(Date startDate, Date endDate,int isNetSign);
List<DecisionFuncValue> calculateLxzc(Date startDate, Date endDate, int netSign);
}
这是依赖接口的调入类,调入类负责定义接口调用接口中的方法;
@Transactional
@Service("decisionImportService")
public class DecisionImportService {
/**
* 币别service
*/
@Autowired(required = false)
private IBtCurrencyService iBtCurrencyService;
/**
*
*/
@Autowired(required = false)
IBtUserManagerServcies iBtUserManagerServcies;
如果接口中的方法实现不存在,就是别的模块没有被加载进当前项目中。那么就要设置这个属性:在程序启动时不加载这个依赖的接口和模块
@Autowired(required = false)
private IFcIntrestDtlService iFcIntrestDtlService;
@Autowired(required = false)
private IFcAccBalanceService iFcAccBalanceService;
/**
*
*/
@Autowired
IBtCorpService iBtCorpService;
/**
* 网点的service
*/
@Autowired
private IBtNetService iBtNetService;
@Autowired(required = false)
private IFcSubjectDayService iFcSubjectDayService;
@Autowired(required = false)
private IFcSubjectService iFcSubjectService;
public IFcSubjectService getIFcSubjectService() {
return iFcSubjectService;
}
public void setIFcSubjectService(IFcSubjectService iFcSubjectService) {
this.iFcSubjectService = iFcSubjectService;
}
public IFcSubjectDayService getIFcSubjectDayService() {
return iFcSubjectDayService;
}
public void setIFcSubjectDayService(IFcSubjectDayService iFcSubjectDayService) {
this.iFcSubjectDayService = iFcSubjectDayService;
}
public IFcIntrestDtlService getIFcIntrestDtlService() {
return iFcIntrestDtlService;
}
public void setIFcIntrestDtlService(IFcIntrestDtlService iFcIntrestDtlService) {
this.iFcIntrestDtlService = iFcIntrestDtlService;
}
public IBtCorpService getIBtCorpService() {
return iBtCorpService;
}
public IFcAccBalanceService getIFcAccBalanceService() {
return iFcAccBalanceService;
}
public void setIFcAccBalanceService(IFcAccBalanceService iFcAccBalanceService) {
this.iFcAccBalanceService = iFcAccBalanceService;
}
public void setIBtCorpService(IBtCorpService btCorpService) {
iBtCorpService = btCorpService;
}
public IBtCurrencyService getIBtCurrencyService() {
return iBtCurrencyService;
}
public void setIBtCurrencyService(IBtCurrencyService btCurrencyService) {
iBtCurrencyService = btCurrencyService;
}
public IBtUserManagerServcies getIBtUserManagerServcies() {
return iBtUserManagerServcies;
}
public void setIBtUserManagerServcies(
IBtUserManagerServcies btUserManagerServcies) {
iBtUserManagerServcies = btUserManagerServcies;
}
public IBtNetService getIBtNetService() {
return iBtNetService;
}
public void setIBtNetService(IBtNetService btNetService) {
iBtNetService = btNetService;
}
}
分享到:
相关推荐
在阅读《Spring中Autowired和Resource的区别.docx》文档时,可以深入探讨这两个注解的内部实现原理,以及在实际项目中的最佳实践。通过源码分析,我们可以了解到Spring如何解析这些注解并执行依赖注入的过程,这有助...
- **字段注入**:直接在成员变量上使用`@Autowired`,Spring会在初始化时注入对应的bean。 ```java @Autowired private MyService myService; ``` - **方法注入**:可以在setter方法或带有参数的方法上使用`@...
`@Autowired`注解可以用于字段、方法和构造函数,表明Spring容器会在运行时自动为这些成员提供合适的依赖。例如: ```java @Service public class UserService { private final UserRepository userRepository; ...
5. **方法注入**:同样的,你可以在setter方法或者任何带有参数的方法上使用`@Autowired`,Spring会在调用该方法时注入对应的依赖。 6. **注解与XML配置的结合**:在Spring 4中,`@Autowired`可以与XML配置一起使用...
Spring 注解@Resource 和@Autowired Spring 框架中提供了两个重要的注解,分别是@Resource 和@Autowired,它们都是用于 bean 的自动装配的。了解这两个注解的区别和使用场景是非常重要的。 首先,@Autowired 是 ...
当Spring容器初始化时,会扫描所有带有@Autowired的注解,然后通过BeanPostProcessor接口进行后处理,实现依赖注入。 这个过程大致分为以下几步: 1. 找到带有@Autowired的字段、方法或构造器。 2. 根据注解的配置...
这样,Spring容器在初始化时可以通过反射获取到`@Autowired`注解,进而执行依赖注入操作。 `@Documented`元注解表示该注解会被包含在JavaDoc文档中,方便开发者查阅。 在程序元素的枚举类型`ElementType`中,我们...
当Spring扫描带有`@Autowired`注解的字段、构造函数或方法时,它会执行以下步骤: 1. **候选Bean的查找**:Spring会根据目标类型(如`MovieCatalog`)在`BeanFactory`中搜索Bean。如果提供了`@Qualifier`注解,那么...
这个问题是很多开发者在使用Spring框架和Mybatis时经常遇到的问题。 首先,让我们了解为什么Intellij IDEA会显示红色告警。当我们在Service层注入Mybatis的Mapper时,我们通常会使用@Autowired 自动注入。但是,这...
总结,`@Autowired`的实现涉及到Spring Bean生命周期中的多个阶段,包括BeanPostProcessor的回调、构造函数的选择、依赖匹配和异常处理等。理解这些细节对于优化Spring应用的依赖管理以及排查相关问题至关重要。通过...
如果找到多个相同类型的Bean,Spring会抛出异常,除非你提供了进一步的配置来解决这个冲突,比如使用`@Qualifier`注解。 `@Autowired`的使用方式有以下几种: 1. 字段注入: ```java @Autowired private MyService...
Spring的核心特性之一是使用注解来简化配置,其中`@Autowired`和`@Qualifier`是两个关键的注解,它们在自动装配Bean时发挥着重要作用。这篇学习Spring笔记将深入探讨这两个注解的用法、原理以及它们在实际开发中的...
但是在多线程处理任务中,当我们使用 @Autowired 注入 bean 时,会出现空指针异常。这是为什么呢? 原因分析: 在 SpringBoot 应用程序中,bean 的注入是通过 ApplicationContext 来实现的。在多线程处理任务中,每...
当在字段或方法上使用`@Autowired`时,Spring会查找与该字段或方法参数类型相匹配的Bean,并将其注入。如果找到多个匹配的Bean,可以通过提供`@Qualifier`注解来指定特定的Bean。如果没有任何匹配的Bean,Spring会抛...
默认情况下,`@Autowired`是基于类型的,即Spring会查找与目标类型匹配的Bean,如果找到了就注入,如果没有找到则抛出异常。 ### 2. 使用方法 #### 2.1 基于类型的自动装配 在字段、构造函数、方法或参数级别上...
@Autowired 注解是 Spring 框架中的一个重要特性,它出现在 Spring 2.5 版本中,用于简化依赖注入(Dependency Injection,简称 DI)的过程。DI 是一种设计模式,允许对象之间的依赖关系在运行时自动解决,使得代码...
使用`@Autowired`注解可以实现依赖注入,Spring会自动寻找匹配类型的Bean进行注入。也可以配合`@Qualifier`注解来精确指定要注入的Bean。 7. **初始化与销毁方法** `@PostConstruct`和`@PreDestroy`注解分别标识...
4. `@Autowired`的可选性:默认情况下,`@Autowired`是非必需的,如果找不到匹配的bean,Spring会抛出异常。你可以通过设置`@Autowired(required=false)`让它成为可选的。 5. Spring配置问题:检查`application....
@Autowired 的工作原理是,在启动 Spring IoC 时,容器自动装载了一个 AutowiredAnnotationBeanPostProcessor 后置处理器,当容器扫描到 @Autowired、@Resource 或 @Inject 时,就会在 IoC 容器自动查找需要的 bean...