java的三层架构

1、java的三层架构:

交互层 controller(用户界面、网页)jsp文件

业务处理层 service(与交互层进行数据传输,调用数据处理层,完成各种业务功能) serverlet类文件.java

数据操作层 Mapper(对数据库操作) .java文件

2.controller层

package test.controller;



import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import test.service.UserService;

/**
 * Controller层的作用:
 * 1、接收请求
 * 2、调用业务逻辑层(servic层)
 *
 * 调用案例:http://127.0.0.1:8091/User/Add?name=张三&password=1234
 */
@RestController//声明这是一个Controller层
@RequestMapping("/User")//声明Controller层的地址
public class UserController {

    @Autowired//自动装配注解,是用来将这个注解下面的对象进行实例化的
    private UserService userService;//调用业务逻辑层需要声明相应的业务逻辑层对象

    //GetMapping是一种请求方式
    @GetMapping(value = "/Add")//声明方法的地址
    public String Add( String name, String password){//()里面的是方法的参数,在进行请求调用时,需要写参数
        userService.UserAdd(name,password);//这个是实例化的业务逻辑层对象来调用其中的方法
        System.err.println("开始添加数据");
        return "number";
    }

    @GetMapping(value = "/Sdd")
    public String Sdd(String name, int age){
        userService.UserSdd(name,age);//这个是实例化的业务逻辑层对象来调用其中的方法
        System.err.println("开始添加数据");
        return "qwer";
    }
}

service层

UserService方法类
package test.service;

/**
 * 这是个业务逻辑层接口
 */
public interface UserService {
    public void UserAdd(String name,String password);
    void abc(String a);
    void aaa(String b);
    void ccc(String q);
    void UserSdd(String name,int age);
}
UserServiceImpl实现类
package test.service.impl;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import test.mapper.UserMapper;
import test.service.UserService;

/**
 * 这是个实现业务逻辑层接口的实现类
 */
@Service//这个注解来表明这是个业务逻辑层,到时候自动装配就可以找到这个层
public class UserServiceImpl implements UserService {

    //自动装配有两种形式但没有区别,一种是Controller层写的直接在类变量上添加注解,第二种就是在方法上添加注解
    private UserMapper userMapper;//此处是声明一个Mapper对象作为类属性
    @Autowired
    public void setUserMapper(UserMapper userMapper) {this.userMapper = userMapper;}

    @Override//重写UserService中的方法
    public void UserAdd(String name,String password) {
        System.err.println("业务逻辑层的UserAdd方法执行了");
//        userMapper.AddUser(name,password);
    }

    @Override
    public void abc(String a) {
        System.err.println("业务逻辑层的UserAdd方法执行了");
    }

    @Override
    public void aaa(String b) {

    }

    @Override
    public void ccc(String q) {

    }

    @Override
    public void UserSdd(String name, int age) {
        System.err.println("业务逻辑层的UserSdd方法执行了");

    }
}

Mapper层

package test.mapper;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface UserMapper {


//    List SelectUser(int id);
//
//    boolean UpdateUser(String name);
//
//    boolean DeleteUser(String name);
    @Insert("INSERT INTO user(name,password) VALUES(#{n1},#{p1})") void AddUser(@Param("n1") String name, @Param("p1") String password);
    @Insert("INSERT INTO user(name,age) VALUES(#{n1},#{p1})") void SddUser(@Param("n1") String name, @Param("p1") String Int);

}

你可能感兴趣的:(笔记,java,jvm,开发语言)