引言

1.EJB存在的问题

EJB(Enterprise Java Bean)

1.运行环境苛刻

2.代码移植性差

总结:EJB重量级的框架

2.什么是Spring

Spring是一个轻量级的JAVAEE解决方案,整合众多优秀的设计模式

  • 轻量级

1.对于运行环境是没有额外要求的

​ 开源 tomcat resion jetty

​ 收费 weblogic websphere

2.代码移植性高

​ 不需要实现额外的接口

  • JavaEE的解决方案

image-20240417215300298

  • 整合了设计模式
  1. 工厂设计模式

  2. 代理设计模式

  3. 模板设计模式

  4. 策略设计模式

3.设计模式

  1. 广义的概念

    面向对象设计中,解决特定问题的经典代码

  2. 狭义概念

    GOF4人帮定义的23种设计模式:工厂、适配器、装饰器、门面、代理、模板….

4.工厂设计模式

  1. 什么是工厂设计模式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //1.概念:通过工厂类,创建对象
    User user=new User();
    UserDao userDao = new UserDaoImpl();
    //2.好处:解耦合
    //耦合:指的是代码间的强关联关系,一方的改变,另一方也需要改变
    public class ActionServletController{
    //这个地方Service改变。后面调用时,控制器也要跟着改变。
    UserService userService = new UserServiceImpl();
    }
    //问题:不利于代码维护
    //简单理解:把接口的实现类,硬编码在程序中.

    UserService:

    1
    2
    3
    4
    5
    //业务类中提供两种方法
    public interface UserService {
    public void register(User user);//需要用户信息所以用实体对象
    public void login(String username, String password);//登录需要传入用户名,密码
    }

    UserServiceImpl:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class UserServiceImpl implements UserService {
private UserDAO userDAO = new UserDAOImpl();//需要DAO接入,引入对象

@Override
public void register(User user) {
userDAO.sava(user);//定义数据库中保存
}

@Override
public void login(String username, String password) {
userDAO.queryUserByNameAndPassword(username, password);
}
}

UserDAOImpl:为了简单定义了两个打印输出

1
2
3
4
5
6
7
8
9
10
11
public class UserDAOImpl implements UserDAO{
@Override
public void sava(User user) {
System.out.println("insert into user=" + user);
}

@Override
public void queryUserByNameAndPassword(String username, String password) {
System.out.println("query User name="+username+" password="+password);
}
}