@Autowired 自动注入失败 报空指针异常

同一个Controller中,所有的方法 要么全是以public 开头 ,要么全部以private开头 否则就会产生错误。。。

不知道什么原因。。。

今天就遇到了这个问题 

在当前的Controller中所有的方法全是以public 开头  只有这个是以private开头 访问自动注入的属性时一直报空指针异常

private改成public后正常了

在Spring MVC中,`@Autowired`注解用于自动装配对象,如果遇到注入失败导致的空指针异常,可能是以下几个原因造成的: 1. **依赖未找到**:检查是否有正确的bean存在并且被标记为`@Component`、`@Service`、`@Repository`或`@Controller`等。确认该bean是否配置在Spring容器中,以及名字是否与@Autowired注解中指定的一致。 ```xml <bean id="yourBeanName" class="com.example.YourClassName"/> ``` 2. **懒加载问题**:默认情况下,`@Autowired`是默认为非延迟加载,即会在初始化阶段就查找对象。若某个bean因某些原因延迟初始化,你需要显式设置为`lazy-init="true"`。 ```xml <bean lazy-init="true" .../> ``` 3. **构造函数注入优先于属性注入**:如果目标类同时有构造函数和字段注解`@Autowired`,构造函数注入会先于属性注入。确保构造函数中有正确的参数类型和数量。 4. **异常抑制**:检查是否有`@ SuppressWarnings("AutowiredFieldsMayBeFinal")`这样的注解,它可能会阻止Spring检测到注入的问题。 5. **数据库连接池问题**:确认数据库连接池是否正常运行,如HikariCP、Druid等。确保连接池配置正确并在应用启动时被初始化。 6. **SQL语句错误**:检查SQL语句本身是否存在语法错误或者访问权限不足,确保表名、字段名拼写无误,必要时检查驱动和数据库兼容性。 解决这些问题后,你应该能看到`@Autowired`能够成功注入,然后执行SQL插入操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值