1. Это что-то типа способо создавать обьект, без "new"
2. Бин это обычный класс с геттерами сеттерами конструктором
3. Как я понимаю это те самые аннотации, которые в классы зависимости с библиотеки спринга вставляют без Object object = new Object.
4. не понимаю, когда первый раз начал учить спринг, то там был какой-то файл application.context, потом я его не встречал