MVC设计思想
历史问题:如果将大量的代码都写到一个方法中,后期维护不易
MVC说明:
1.M Model 数据层 数据处理/数据的持久化
2.V View 视图层 前端页面相关的内容(看到的内容)
3.C Control 控制层 控制数据的流转过程
层级代码结构
前提:在项目中代码需要松耦合,根据MVC指导思想,后端代码进行了优化,演变为现在的层级代码结构.
层级结构:
1.Controller层: 控制层,主要是用来实现与前端页面的交互!!!
2.Service层: 业务层,主要实现数据的处理!!!
3.Dao层/Mapper层: 持久层,与数据库进行交互.实现数据CURD操作!!!
4.POJO 根据数据表定义的实体对象
层级结构入门案例 :
1.定义表的实体对象层POJO层(User表,需要实现序列化接口)
package com.jt.demo10.pojo;
import java.io.Serializable;
public class User implements Serializable {
//1.属性都是私有的,方法是公有的
//2.实现序列化接口
// 作用:(1)保证数据按照正确的格式输出!!!
// (2)在多线程条件下,共享数据必须序列化
//3.POJO的对象一般都是用来实现数据的传递的
private Integer id;
private String name;
private Integer age;
private String sex;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
2.定义Mapper级(面向接口编程—定义接口和实现类)
定义Mapper层接口:
package com.jt.demo11.mapper;
import com.jt.demo11.pojo.User;
public interface UserMapper {
void addUser(User user);
}
定义Mapper层接口实现类:
package com.jt.demo11.mapper;
import com.jt.demo11.pojo.User;
import org.springframework.stereotype.Repository;
@Repository
public class UserMapperImpl implements UserMapper {
@Override
public void addUser(User user) {
System.out.println("操作成功:"+user.getName());
}
}
3.定义Service层(面向接口编程—定义接口和实现类)
定义Service层接口:
package com.jt.demo11.service;
import com.jt.demo11.pojo.User;
public interface UserService {
void addUser(User user);
}
定义Service层接口实现类:
package com.jt.demo11.service;
import com.jt.demo11.mapper.UserMapper;
import com.jt.demo11.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void addUser(User user) {
userMapper.addUser(user);
}
}
4.定义Controller层
定义Controller层类:
package com.jt.demo11.controller;
import com.jt.demo11.pojo.User;
import com.jt.demo11.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@Controller
public class UserControl {
@Autowired
private UserService userService;
public void addUser(){
User user = new User();
user.setId(111);
user.setAge(2021);
user.setName("jdjjjj");
user.setSex("KKKKK");
userService.addUser(user);
}
}
5.创建配置类
package com.jt.demo11.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.jt.demo11")
public class SpringConfig {
}
6.创建测试类TestMVC
package com.jt.demo11;
import com.jt.demo11.config.SpringConfig;
import com.jt.demo11.controller.UserControl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class TestMVC {
public static void main(String[] args) {
ApplicationContext app = new AnnotationConfigApplicationContext(SpringConfig.