SpringBoot中普通类无法注入service的解决方案
1、解决方案:既然spring无法完成普通类的依赖注入,那么我们就手动getBean(思路就是手动调用ApplicationContext.getBean() )。
2、而在你的applicationContext.xml配置中命名为loginInfoService..这两个名字必须一样。这个没问题。看走眼了。
3、通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径下。 Spring Boot项目的Bean装配 默认规则 是根据Application类(指项目入口类)所在的包位置从上往下扫描。
4、通过ApplicationContext来获取。
springbootbean注入不可见
1、ComponentScan注解。扫描或解析的bean只能是Spring内部所定义的,比如@Component、@Service、@Controller或@Repository。如果有一些自定义的注解,比如@Consumer、这个注解修饰的类是不会被扫描到的。
2、具体原因如下:无法点击按钮进行跳转,点击按钮没用,点击按钮不跳转,甚至错误页面也没法见到通常是:控制后台逻辑没有给出Delete相关的功能。
3、由于web应用启动的顺序顺序的原因(listener-filter-servlet),在Filter中注入Bean是不会成功的。
SpringBoot运行时动态注册Bean到IOC容器中
通过实现 ApplicationContextAware 接口,通过Spring启动过程中回调 setApplicationContext 接口,获取spring的IOC容器,然后就可以注册bean到Spring容器中了。
[@Configuration + @Bean]Configuration用来声明一个配置类,然后使用 @Bean 注解,用于声明一个bean,将其加入到Spring容器中。
Spring把Bean注入到IOC容器:Spring自动帮你实例化bean。所以,他们是同一个。
SpringBoot的自动装配是指:SpringBoot会自动将一些配置类的bean注册到ioc容器,我们可以在需要的地方使用@Autowired或@Resource等注解来使用它。