(一)Java后台开发方向
第一阶段:Java语言(基础语法、面向对象、Java API)
第二阶段:Java技术(JDBC技术(访问数据库)、Servlet技术(控制层)
第三阶段:Java框架(Spring框架、SpringMVC框架、Mybatis框架)
第四阶段:Java案例(添加、修改、删除、查询、搜索、分页)
(二)Java项目分层结构
视图层 | 控制层 | 业务层 | 数据层 | 企业信息系统层 |
---|---|---|---|---|
View | Controller | Service | DAO | EIS |
springboot | springboot | springboot | ||
Tomcat服务器 | Tomcat服务器 | Tomcat服务器 | Mysql服务器 | |
Java | Java | Java | SQL | |
Servlet | Java | JDBC | SQL | |
SpringMVC | Mybatis | |||
Spring | Spring | Spring |
(三)搭建SpringBoot工程
(1)安装和配置Maven
maven介绍:maven是**包管理工具、帮助我们下载资源的jar包**。
配置一:本地库的路径。
<localRepository>d:/maven/mylib</localRepository>
配置二:远程库的路径。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
(2)在Eclipse中配置Maven
配置一:maven路径
配置二:settings.xml路径
配置三:maven视图
(3)创建SpringBoot工程(注意:连网)
name工程名 springboot01
group组名 com.cuiyudong
package包名 com.cuiyudong
资源 spring web(SpringMVC框架)
pom.xml <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
(4)SpringMVC框架
SpringMVC框架:是基于【MVC原理】的【控制层框架】。
说明一:SpringMVC框架就是Spring Web模块。
说明二:SpringMVC框架是Spring框架其中一个子模块。
说明三:MVC原理
M-Model 模型层(指的是后端往前端发的数据)
V-View 视图层
C-Controller 控制层
说明四:SpringMVC框架是控制层的框架、用于和前台进行交互。
说明五:SpringMVC框架是对Servlet技术的封装。
使用SpringMVC框架开发一个控制器的步骤:
(4.1)创建包com.cuiyudong.controller
(4.2)创建控制器Action01
(4.3)编写控制器中的方法m01
package com.zhaoyang.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zhaoyang.bean.Person;
@RestController
@RequestMapping("Action01")【括号里面的名字相当于“/Action01”】
public class Action01 {
@RequestMapping("m1")
public String m1(String name, int age) {
System.out.println(name);
System.out.println(age);
return "你好";
}
@RequestMapping("m2")
public boolean m2(Person person) {
System.out.println(person);
return true;
}
@RequestMapping("m3")
public String m3() {
return "张三";
}
@RequestMapping("m4")
public Person m4() {
return new Person("张三", 30);
}
@RequestMapping("m5")
public List<Person> m5() {
List<Person> list = new ArrayList<Person>();
list.add(new Person("张三", 30));
list.add(new Person("李四", 40));
return list;
}
@RequestMapping("m6")
public Map<String, Object> m6() {
List<Person> list = new ArrayList<Person>();
list.add(new Person("张三", 30));
list.add(new Person("李四", 40));
Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", 100);
map.put("key2", "成功");
map.put("key3", new Person("王五", 50));
map.put("key4", list);
return map;
}
(4.4)控制器【类的上方】添加【控制器注解】@RestController
//这一步相当于
<servlet>
<servlet-name>z</servlet-name>
<servlet-class>com.cuiyudong.control.LoginAction</servlet-class>
</servlet>
(4.5)【类的上方】和【方法的上方】添加【请求映射注解】@RequestMapping(“Action01”)【类上面括号里面的名字相当于“/Action01”】
//这一步相当于
<servlet-mapping>
<servlet-name>z</servlet-name>
<url-pattern>/g</url-pattern>
</servlet-mapping>
(4.6)启动SpringBoot工程的服务
(4.7)访问控制器中的方法http://127.0.0.1:8080/a/b
(4.8)停止服务
(4.9)配置tomcat端口
重要专题一:控制器获取前台数据的方式
方式一:通过方法的多个参数来获取前台数据(适用于参数比较少的)
注意:个数、名字都必须和前台一致
http://127.0.0.1:8081/Action01/m1?name=abc&age=22
方式二:通过方法的参数封装类来获取前台数据(适用于参数多的)
需要:写一个封装类(例如Person类),这个时候传过来的就是一个人的信息而不是两个数据
http://127.0.0.1:8081/Action01/m2?name=abc&age=22
@RequestMapping("m2")
public boolean m2(Person person) {
System.out.println(person);
return true;
}
重要专题二:控制器返回发送到前台的数据的类型(SpringMvc中函数的返回值是什么?)
注意:SpringMVC框架会***把控制器返回的 Java对象自动转换为JSON数据***发往前端。
了解:JSON是前端JavaScript语言的对象表示方法。
第一种:字符串
Java “张三”
JSON 张三
@RequestMapping("m3")
public String m3() {
return "张三";
}
第二种:一个对象
Java new Person(“张三”, 30)
JSON {“name”:“张三”,“age”:30}
@RequestMapping("m4")
public Person m4() {
return new Person("张三", 30);
}
第三种:List集合
Java List list
JSON [{“name”:“张三”,“age”:30},{“name”:“李四”,“age”:40}]
@RequestMapping("m5")
public List<Person> m5() {
List<Person> list = new ArrayList<Person>();
list.add(new Person("张三", 30));
list.add(new Person("李四", 40));
return list;
}
第四种:Map集合
Java Map<String, Object> map
JSON {“key1”:100,“key2”:“成功”,“key3”:{“name”:“王五”,“age”:50},“key4”:[{“name”:“张三”,“age”:30},{“name”:“李四”,“age”:40}]}
@RequestMapping("m6")
public Map<String, Object> m6() {
List<Person> list = new ArrayList<Person>();
list.add(new Person("张三", 30));
list.add(new Person("李四", 40));
Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", 100);
map.put("key2", "成功");
map.put("key3", new Person("王五", 50));
map.put("key4", list);
return map;
}