Весной приложение создает свои собственные bean-компоненты (либо в виде синглетонов, либо в виде «нового» экземпляра в любое время, когда вам это нужно).
Например, EmpController помечен @Controller, чтобы сообщить Spring точно: это контроллер, так как приложение запускается, пожалуйста, создайте новый экземпляр этого компонента, чтобы я мог его использовать.
Однако, когда Spring пытается создать этот бин, он также заполняет его переменные.
@Autowired для переменной empDao означает примерно: «вы уже должны были создать экземпляр класса empDao, поэтому, пожалуйста, дайте мне здесь ссылку на него (empDao), чтобы я мог вызвать его из этого класса (empController)» *
@Controller
public class EmpController {
@Autowired
EmpDao empDao;
Но кажется, что сам empDao настроен неправильно - нет аннотации, чтобы сообщить Spring, что он должен создать его экземпляр при запуске.
попробуйте следующие 2 изменения:
@Service
public class EmpDao {
и
@Entity
public class Emp {