Spring声明式事务管理老是出现如下报错,求好心人解答一下

Spring声明式事务管理老是出现如下报错,求好心人解答一下,第1张

错误创建bean的名称为deptBiz的“定义在类路径资源的ApplicationContext-thistongxml]:错误设置属性值;嵌套异常是orgspringframeworkbeansnotwritablepropertyexception:无效的属性”deptBiz的bean类[comthistong。 serviceimpluserserviceimpl]:bean属性的EmpDAO
的'不写,或有一个无效的setter方法
1、setter方法的参数类型不匹配的getter的返回类型导致。
2、为需要代理的目标类抽出接口。

bean类:是一些实体类,包括viewbean,databean等等。
action类:可作为接收显示层的数据,连接显示层和业务逻辑实现层的控制层。
model类:MVC中model层就是到层。在java中无特殊含义就是模块。
util类:工具类
dao:数据库 *** 作类。对数据库进行曾删改查等 *** 作

那就是没有扫描到文件,看看打包后里面包路径是不是spring扫描的包路径,项目运行时打包成jar的项目相当于把这个压缩包里面的东西解压到classes里面。

Spring 框架对 JPA 提供的支持主要体现在如下几个方面:

首先它使得 JPA 配置变得更加灵活。

JPA 规范要求,配置文件必须命名为 persistencexml,并存在于类路径下的 META-INF 目录中。该文件通常包含了初始化 JPA 引擎所需的全部信息。Spring 提供的 LocalContainerEntityManagerFactoryBean 提供了非常灵活的配置,persistencexml 中的信息都可以在此以属性注入的方式提供。

其次Spring 实现了部分在 EJB 容器环境下才具有的功能。

比如对 @PersistenceContext、@PersistenceUnit 的容器注入支持。

第三,Spring 将 EntityManager 的创建与销毁、事务管理等代码抽取出来,并由其统一管理。

4开发者不需要关心这些,业务方法中只剩下 *** 作领域对象的代码,事务管理和 EntityManager 创建、销毁的代码都不再需要开发者关心了。

通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径下。
Spring Boot项目的Bean装配 默认规则 是根据Application类(指项目入口类)所在的包位置从上往下扫描。
eg: Application启动类 在包comalibabataobao下,则只会扫描 comalibabataobao 包及其所有子包,如果需要自动装载的类所在包不在 comalibabataobao 及其子包下,而是在 comalibabatmall 下,则不会被扫描,自然就没法被注入!

若类A中包含成员属性B, B是通过@Autowired自动注入,而类 A的实例 是通过 new的方式 产生,则自动注入会失效的。

在启动类中定义分别扫描两个包 ,即在@SpringBootApplication注解的类中添加:
@ComponentScan({"comalibabataobao","comalibabatmall"})

@ComponentScan({"comalibaba"})

定义一个SpringUtil类

然后在类A中通过如下调用获取Spring容器中的B实例
ClassBInterface b = (ClassBInterfaceImpl) SpringUtilgetBean("classBInterfaceImpl");

<jsp:setProperty name="conn" property="connStr" value="jdbc:odbc:bookstore"/>
你这句 是调用的 javabean里面的 get##()方法 和 set##() 方法 来对表单的接收 这里的get##()方法 和 set##() 方法 是和页面中表单对应的,
你写的那几个 是对数据库连接用的 。
而你的javabean 里没有接收表单的get##()方法 和 set##() 方法, 是不是忘记写了?
他说
The value for the useBean class attribute dbBeanDBBean is invalid(无效)
我想是这个原因。
-------------------
你写的 这是设置数据库的 不是用来 你设置表单的。
好比:
<input type="text" name="name">
这样的是没法给他设置 和获取他内容的值的。
必须写上
setName(String name){
thisname = name;
}
public String getName(){
return name;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10540677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存