Spring 概念 all in one
目前开发时候遇到的问题:必须先搭建框架,步骤比较繁琐
期望 框架搭建好可直接用,常见的配置我们可以不管了,因为固定的那些配置是已经配置好的了。
可以把springboot理解为 spring+springmvc ,而且免配置。
本次记录选择spring initializr,也可选择maven创建,只是几个依赖包要自己手动添加 其他依赖即可,其他基本一致。
另外关于maven,加载依赖时会先从本地选择,相比一直从远程拉取会节省时间。
步骤初步较为详细,操作一步一步跟着搭就行了,如果遇到问题时,先看自己是否哪里配置出错,根据错误提示去解决问题。
配置步骤如下:
1.创建项目
- 选择spring initializr
- 包名
- web jdbc mybatis mysql 选择,根据需要选择相应依赖
2. 添加druid依赖
项目运行时如果出现版本冲突报错,可拉取高版本另外,pom文件中生成的若不满足后续需求,可继续添加依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency>
3. 创建包 bean controller mapper,resources中创建mybatis/mapper包
4. 在application.properties中配置,同application.yml文件
二选一即可 我这里 package com.dw.demo2.bean 下方配图写错了 注意要与自己的一直即可,图暂时就不换了
application.properties配置格式如下:
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/sbtest?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#整合mybatis
mybatis.type-aliases-package=com.dw.demo.bean
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
application.yml配置格式如下:
spring:
datasource:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/sbtest?useUnicode=true&characterEncoding=utf-8&userSSL=false&serverTimezone=GMT%2B8
type: com.alibaba.druid.pool.DruidDataSource
mybatis:
mapper-locations: classpath:mybatis/mapper/*.xml
type-aliases-package: com.dw.demo.bean2
5. 使用database连接mysql逆向生成实体类,可用其他操作代替此步骤
在生成实体类时候,包名不一致,需要手动去更改,如果你有很好的办法解决,请告知,多谢
- 连接mysql
- 输入 用户名 密码 数据库
- 再次点击测试 连接成功 确定
- 右键选择表 选择生成pojo 弹窗选择在bean目录下
- 查看表已生成,修改package路径
6. mapper层创建文件
举例 创建 DeptMapper
7. 做映射,在resoureces中的mybatis/mapper目录下创建映射文件 自己写sql
例如 DeptMapper.xml
注意命名规范 以及目录路径
8. controller层创建文件 注入mapper 调用方法
9. springapplication 启动程序
10. 打开网页地址栏输入localhost:8080/请求 格式
程序跑起来了,也返回有结果,初步搭建雏形以上已经完成了。
另外在bean中添加了msg,返回成功 失败信息提示等其他信息,可加入其他信息 自己设定
如下:
public class Msg {
//状态码 100-成功 200-失败 自定义的
private int code;
//提示信息
private String msg;
//用户返回给浏览器的数据
private Map<String,Object> extend=new HashMap<String, Object>();
public static Msg success() {
Msg result=new Msg();
result.setCode(100);
result.setMsg("处理成功");
return result;
}
public static Msg fail() {
Msg result=new Msg();
result.setCode(200);
result.setMsg("处理失败");
return result;
}
public Msg add(String key,Object value) {
this.getExtend().put(key, value);
return this;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Map<String, Object> getExtend() {
return extend;
}
public void setExtend(Map<String, Object> extend) {
this.extend = extend;
}
}