报错:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘hospitalSetController’: Unsatisfied dependency expressed through field ‘hospitalSetService’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘hospitalSetServiceImpl’: Unsatisfied dependency expressed through field ‘baseMapper’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘hospitalSetMapper’ defined in file [E:\project resource\yygh_parent\service\service_hosp\target\classes\com\atguigu\yygh\hosp\mapper\HospitalSetMapper.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required
Process finished with exit code 0
解决:
@MapperScan("com.atguigu.yygh.hosp.mapper")
这句话加到配置类上。mapperscan可以加到启动类和配置类上。因为mapper是动态创建的,因此需要扫描。
涉及知识:
什么是DAO
DAO,全名为Data Access Object,数据库访问对象,操作数据库用的。DAO通常包括三个部分:DAO接口,DAO实现类,DAO工厂类。
名称 | 描述 |
---|---|
DAO接口 | 用来声明对数据库表的操作,如增删改查记录 |
DAO实现类 | 用来实现DAO接口,并实现其接口的所有方法 |
DAO工厂类 | 用来返回一个DAO接口类型的DAO实现类实例对象 |
POJO
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。
POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
springboot
springMVC + spring
pom
<packaging>pom</packaging>
的意思是项目里没有java代码,也不执行任何代码,只是为了聚合工程或传递依赖用的。所以并不会寻找配置文件,若想配置文件生效,改为jar
参考:https://segmentfault.com/q/1010000022275334
pom的使用场景
maven 默认的打包类型为 jar,在项目聚合的时候,需要显式的将 父项目的 packing 指定为 pom,然后再指定所属的子模块,如下所示:
如果没有将packing 指定为pom ,那么子模块之间将无法正常的进行依赖传递。
我们执行的maven命令的时候将首先对父项目执行,而后当 父项目 的packing 类型为 pom 时,将对所有的子模块执行同样的命令,否则将无法执行同样的命令,那么依赖的传递将无法由maven 编译或者打包命令 得以执行。
参考官网:
http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
swagger
swagger用于delete方法测试,将swagger整合到common上,使所有接口都能使用