Как сделать общий сервис во всех контроллерах?
Абстрактный контроллер реализует Service Subscriber. Вам достаточно туда добавить ваш Setting:

abstract class Controller extends AbstractController
{
    public static function getSubscribedServices()
    {
        return array_merge(parent::getSubscribedServices(), [
            'setting' => Setting::class,
        ]);
    }

    protected function getSetting(): Setting
    {
        return $this->get('setting');
    }
}
Простейший вариант - написать свой compiler pass, в нём выбрать сервисы (через findTaggedServiceIds) по тегу controller.service_arguments и дополнить определение сервисов либо вызовом вашего метода либо добавлением аргумента в конструктор, это можно делать по имени.

Можно сделать ещё более общее решение: определить интерфейс, например SettingsAwareInterface примерно такого вида:
namespace App\Contracts;

interface SettingsAwareInterface
{
    public function getSettings(): Setting;

    public function setSettings(Setting $settings): void;
}
затем в services.yaml добавить:
_instanceof:
  App\Contracts\SettingsAwareInterface:
    tags:
      - {name: 'app.settings-aware'}
и в compiler pass работать с тегом app.settings-aware, это позволит вам передавать данный сервис не только в контроллеры.