的'不写,或有一个无效的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");
你这句 是调用的 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;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)