spring和springMVC集成

spring和springMVC集成

前期准备工作

1. 复制配置文件

​ 将Spring项目中的 src/main/resources/applicationContext.xml 文件复制到Spring MVC项目的 src/main/resources 目录下。这是因为Spring MVC项目需要使用Spring的上下文配置文件来管理Bean和依赖注入。Spring MVC项目中有自己独立的配置需求,将配置文件复制过来可以确保两个项目在Bean定义和依赖管理方面的一致性。

2. 复制Service包

​ 将Spring项目中的 cn/edu/guet/service 目录下的 service 包复制到Spring MVC项目的 src/main/java/cn/edu/guet/controller 目录下。目的是在Spring MVC项目中使用相同的服务类。这样可以避免重复编写相同的服务逻辑,并保持业务逻辑的一致性。

3. 修改applicationContext.xml文件

由于Service类路径改变(从 cn.edu.guet.service 变为 cn.edu.guet.controller.service),需要更新 applicationContext.xml 文件中的Bean定义路径。例如:

<bean class="cn.edu.guet.controller.service.impl.UserServiceImpl" id="userService"/>

这确保了Spring能够正确地找到和实例化这些Bean。

4. 设置依赖注入

在Spring MVC项目的 LoginController 类中,使用注入的 userService 来实现业务逻辑。如果 LoginController 类中没有依赖注入 userService,会导致编译错误或运行时错误。通过在 LoginController 中创建 userService 属性并设置setter方法,可以确保 userService 被正确地注入并使用:

public class LoginController {
    private UserService userService;

    public void setUserService(UserService userService) {
        this.userService = userService;
    }
}

applicationContext.xml 中配置依赖注入:

<bean class="cn.edu.guet.controller.LoginController" id="loginController">
    <property name="userService" ref="userService"/>
</bean>

这确保了 LoginController 中的 userService 属性能够被Spring正确地注入,从而可以在控制器中使用服务层逻辑。

开始集成

spring官方配置文档

1. 添加ContextLoaderListener

src/main/webapp/WEB-INF/web.xml 文件中添加 ContextLoaderListenercontext-param 配置:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

这是为了在应用启动时加载Spring应用上下文,确保Spring的配置文件被正确读取和加载。

2. 确定集成是否成功

LoginController.java 中编写测试代码,检查 userService 是否被正确注入,并调用 userServicelogin 方法:

@Controller
public class LoginController {

    private UserService userService;

    @Autowired
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @PostMapping("/login")
    @ResponseBody
    public User login(String username, String password) {
        System.out.println("空空空空空:" + userService);
        return userService.login(username, password);
    }
}

3. 加入 @Autowired 注解

setUserService 方法上加入 @Autowired 注解是为了告诉Spring在启动时自动注入 userService。这个注解可以自动将 UserService 实例注入到 LoginController 中,确保在调用 login 方法时 userService 已经被正确实例化。

@Autowired
public void setUserService(UserService userService) {
    this.userService = userService;
}

4. 使用APIFOX测试

通过APIFOX发送POST请求到 /login,并传递 usernamepassword 参数,检查控制台输出和返回结果:

{
  "username": "testUser",
  "password": "testPassword"
}

验证集成成功

  1. 启动应用:运行Spring MVC项目,确保项目成功启动且没有错误。
  2. 检查日志:观察控制台输出,确保 userService 被正确注入并在控制台输出中打印。
  3. 测试API:使用APIFOX发送请求,确认 login 方法被正确调用,并返回预期结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值