PeaceSheep's blog PeaceSheep's blog
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)

PeaceSheep

以最简洁、易懂的话解决问题
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)
  • C++

  • Python

  • Go

  • java

    • SSM初学

      • SSM简要介绍
        • 什么是spring?
        • spring的弊端与springboot
        • 遇到的一些坑
          • 1.xml文件提前结束
        • 2. 一开始用的spring,改用springboot之后报错
    • 依赖相关

  • 语言
  • java
  • SSM初学
PeaceSheep
2023-09-20
目录

SSM简要介绍

之前没有接触过Java,这次要做的导师的横向被甲方要求必须用java,必须用ssm框架,所以只能去学了一下,遇到了一些坑,在此说明一下,方便以后自己查询,如果能帮到其他人就更好了。

# 什么是spring?

对于Spring,一个很重要的作用是依赖注入。举一个例子。我们的项目可能有service层和controller层。

controller层的定义如下:

@RestController
@RequestMapping("/user")
public class UserController {
    UserService userService;
    @Autowired
    UserController(UserService userService){
        this.userService = userService;
    }
    @ResponseBody
    @RequestMapping(value="/login",produces="application/json;charset=UTF-8",method = RequestMethod.POST)
    public String login(HttpServletRequest request, UserDTO userDTO) {
        return "success";
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

可以看到UserController用到了UserService,如果没有spring,那么你需要自己构造一个UserService,传入到UserController中去,有了spring,那么你只需要写完UserService这个类,然后使用@Service标注,同时在Controller里面使用@AutoWired,那么spring就会自动构造一个UserSerive,注入到UserController中去。

# spring的弊端与springboot

要使用spring,你需要配置非常多的xml文件。例如,applicationContext.xml,spring-mvc.xml等等。这些配置文件通常很难阅读,很难配置,但是很多项目的大部分内容又是相同的,或者能按照某种模板制作出来的。为了解决这个问题,springboot诞生了。springboot使用了“约定优于配置”的方式。通俗的讲,springboot同样支持spring的功能,同时它不需要你写很多xml配置文件,例如,要扫描哪些包。默认情况下,它会扫描和application.java同目录下的包和子包,而这也符合一般人的逻辑,因此无需进行配置。

举一个例子,我们去吃饭,spring需要你配置好,你是中国人还是外国人,你是否不吃肉,你是否用一双筷子,你是否使用勺子等等。spring就是认为你是中国人,你吃肉,你使用筷子。如果你是素食主义者,那么在单独说明就好了,而不是所有东西都必须配置。

# 遇到的一些坑

由于是第一次用java和ssm,遇到了一些坑,在此说明一下(可能很离谱)。

# 1.xml文件提前结束

在target/classes里面有一个空的xml文件,不管怎么重新生成都不行,然后一直报错什么“文件提前结束”。后来直接把这个xml删除了就好了,估计是之前不小心生成的时候被我强制关掉了,然后就留了一个空文件,后来改了文件名不会生成这个xml了。(PS:重新生成不应该把这个目录自动清空在重新生成么!!)

# 2. 一开始用的spring,改用springboot之后报错

Parameter 0 of constructor in com.main.carbon_emission_monitor.repo.impl.UserRepoImpl required a bean of type 'com.main.carbon_emission_monitor.dao.UserDAO' that could not be found.

检查了UserDAO明明存在,但就是报错,后来突然想到,UserDAO是个interface,之前有mybatis实现,结果改用springboot之后,没有加mybatis相关的东西,导致这个接口没有实现。

编辑 (opens new window)
上次更新: 2025/04/15, 10:52:45
Gin开发后端——gorm外键实例
lombok与mapstruct的冲突问题

← Gin开发后端——gorm外键实例 lombok与mapstruct的冲突问题→

最近更新
01
ubuntu安装g++显示已有但是输入g++又找不到命令
04-15
02
使用cloudflare-r2搭建webdav
04-08
03
LLM聚合平台客户端对比
03-29
更多文章>
Theme by Vdoing | Copyright © 2022-2025 PeaceSheep
冀ICP备2022004632号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式