Добавьте @Autowired в DataSourceFactory - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть весенний lib jar, и я хотел бы импортировать его в мой пользовательский DataSourceFactory в Tomcat. У кого-нибудь есть решение?

Вот мой код:

public class SecureDataSourceFactory extends DataSourceFactory {

    @Autowired
    private EncryptionUtil encryptionUtil;

    @Override
    public DataSource createDataSource(Properties properties, Context context, boolean XA) throws Exception {       encryptionUtil.replacePassword(properties);

        return super.createDataSource(properties, context, XA);
    }
}

1 Ответ

0 голосов
/ 08 ноября 2019

Вопрос все еще немного неясен. Поэтому, если вам нужно автоматически подключить экземпляр EncryptionUtil к SecureDataSourceFactory, тогда вы должны поместить аннотацию определения bean-компонента поверх класса SecureDataSourceFactory, вы можете использовать @Component примерно так:

@Component
public class SecureDataSourceFactory extends DataSourceFactory {

    @Autowired // it will work because Spring context will recognize @Component annotation, so it will construct the bean and inject dependencies
    private EncryptionUtil encryptionUtil;
...
}

После этого вы также можете добавить свой SecureDataSourceFactory в другие компоненты следующим образом:

@Service // remember to declare the service class as bean too, to enable autowiring
public class MyService {
    @Autowired
    private SecureDataSourceFactory secureDataSourceFactory;
    ...
}
...