No bean named 'frontController' is defined

No bean named 'frontController' is defined

项目结果为:

http://img1.sycdn.imooc.com//climg/5d2af6070001f99613660764.jpg

在前台的子模型中引入后台子模型的相关依赖,然后新建一个controller

<dependency>
   <groupId>com.imooc</groupId>
   <artifactId>background</artifactId>
   <version>1.0-SNAPSHOT</version>
</dependency>

FrontController.java(有使用注释)

@Controller("frontController")
public class FrontController {
   @Resource(name = "deptDao")
   private DeptDao deptDao;
   public void detail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       List<Dept> list = deptDao.selectAll();
       List<Dept> list1 = new ArrayList<>();
       List<Dept> list2 = new ArrayList<>();
       for (Dept dept : list) {
           if (dept.getCategory().getName().equals("内科")) {
               list1.add(dept);
           } else if (dept.getCategory().getName().equals("外科")) {
               list2.add(dept);
           }
       }
       request.setAttribute("list1", list1);
       request.setAttribute("list2",list2);
       request.getRequestDispatcher("../hospital_detail.jsp").forward(request,response);
   }
}

为什么提示这个controller对应的bean找不到呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕柯南 2019-07-15 11:38:18

同学你好!看同学的引入没有什么问题,

1。建议同学将target文件删除,重新编译测试一下

http://img1.sycdn.imooc.com//climg/5d2bf4ea000142a002170071.jpg

2.清除idea的缓存测试一下

http://img1.sycdn.imooc.com//climg/5d2bf51700019e5f02840547.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 野生java小菜鸡 #1
    还是不行呀,把其他两个模块的给删了(front模块没有target),清除缓存后启动还是报这个错误,难道只能把所有的控制器写到一个子模块中么?
    2019-07-15 12:07:48
  • 同学理论上来说控制器只要名字不同可以写多个子模块中,但是不推荐这么做。front模块没有target说明这个模块没有编译。建议同学将项目中的 .idea 删除。重启idea重新导入项目生成。如果不能够解决建议同学重新创建一个项目测试一下。建议将Controller写同一个模块下面。祝学习愉快~
    2019-07-15 15:23:21
提问者 野生java小菜鸡 2019-07-15 10:08:06

front模块的pom.xml配置是复制backgroun的过来修改的,将该controller写在background里能找到,写到front里却报错。

front模块的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
       <artifactId>hm</artifactId>
       <groupId>com.imooc</groupId>
       <version>1.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>front</artifactId>
   <packaging>war</packaging>
   <name>front Maven Webapp</name>
   <url>http://maven.apache.org</url>
   <dependencies>
       <dependency>
           <groupId>com.imooc</groupId>
           <artifactId>public</artifactId>
           <version>1.0-SNAPSHOT</version>
       </dependency>
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>javax.servlet-api</artifactId>
           <version>4.0.0</version>
       </dependency>
       <dependency>
           <groupId>jstl</groupId>
           <artifactId>jstl</artifactId>
           <version>1.2</version>
       </dependency>
   </dependencies>
   <build>
       <finalName>front</finalName>
   </build>
</project>

public模块的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
       <artifactId>hm</artifactId>
       <groupId>com.imooc</groupId>
       <version>1.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>

   <artifactId>public</artifactId>
   <packaging>jar</packaging>

   <dependencies>
       <!-- Mybatis -->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.44</version>
       </dependency>
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.4.4</version>
       </dependency>
       <!-- Spring -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-core</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-beans</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-aop</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.aspectj</groupId>
           <artifactId>aspectjweaver</artifactId>
           <version>1.8.0</version>
       </dependency>
       <!-- 事务 -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-tx</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis-spring</artifactId>
           <version>1.3.1</version>
       </dependency>
   </dependencies>
</project>

background模块的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
       <artifactId>hm</artifactId>
       <groupId>com.imooc</groupId>
       <version>1.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>background</artifactId>
   <packaging>war</packaging>
   <name>background Maven Webapp</name>
   <url>http://maven.apache.org</url>
   <dependencies>
       <dependency>
           <groupId>com.imooc</groupId>
           <artifactId>public</artifactId>
           <version>1.0-SNAPSHOT</version>
       </dependency>
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>javax.servlet-api</artifactId>
           <version>4.0.0</version>
       </dependency>
       <dependency>
           <groupId>jstl</groupId>
           <artifactId>jstl</artifactId>
           <version>1.2</version>
       </dependency>
   </dependencies>
   <build>
       <finalName>background</finalName>
   </build>
</project>

整个项目的 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.imooc</groupId>
   <artifactId>hm</artifactId>
   <packaging>pom</packaging>
   <version>1.0-SNAPSHOT</version>
   <modules>
       <module>public</module>
       <module>background</module>
       <module>front</module>
   </modules>
   <properties>
       <spring.version>4.0.2.RELEASE</spring.version>
   </properties>
</project>

提问者 野生java小菜鸡 2019-07-14 18:30:43

spring.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx.xsd">
   <!-- Spring整合Mybatis -->
   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
       <property name="url" value="jdbc:mysql://localhost:3306/hospital?useUnicode=true&amp;characterEncoding=utf-8"/>
       <property name="username" value="root"/>
       <property name="password" value="root"/>
   </bean>
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="dataSource"/>
       <property name="typeAliasesPackage" value="com.imooc.hm.entity"/>
   </bean>
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <property name="basePackage" value="com.imooc.hm.dao"/>
       <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
   </bean>
   <!-- 声明式事务 -->
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       <property name="dataSource" ref="dataSource"/>
   </bean>
   <tx:advice id="txAdvice" transaction-manager="transactionManager">
       <tx:attributes>
           <tx:method name="get*" read-only="true"/>
           <tx:method name="find*" read-only="true"/>
           <tx:method name="search*" read-only="true"/>
           <tx:method name="*" propagation="REQUIRED"/>
       </tx:attributes>
   </tx:advice>
   <aop:config>
       <aop:pointcut id="txPointcut" expression="execution(* com.imooc.hm.service.*.*(..))"/>
       <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
   </aop:config>
   <!-- 全局扫描 -->
   <context:component-scan base-package="com.imooc.hm"/>
   <aop:aspectj-autoproxy/>
</beans>

项目结构:

http://img1.sycdn.imooc.com//climg/5d2b038e00012f5d13660731.jpg

spring.xml是在public里面,已经在front里面引入public的依赖,想在front里面新建一个controller却提示找不到对应的bean,把这个controller放到background里面却能找到

  • 同学确定在front里面引入public的依赖无误吗?如果无误建议同学改为将被扫描的包改为com.imooc.hm.*测试一下。祝学习愉快~
    2019-07-14 18:59:26
  • 老师可以看下我的front模块的pom.xml写在回答里了,将被扫描的包改为com.imooc.hm.*还是报错,麻烦老师了
    2019-07-15 10:09:33
好帮手慕柯南 2019-07-14 18:24:13

同学你好!在这个模块下是否开启了注解的扫描,扫描的包是否正确。同学检查一下。如果不能够解决贴一下配置文件的代码。注意:以回答这个问题的方式贴出。回复里会改变代码的格式。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师