使用java简单实现的一个Spring框架(pom.xml仅包含Servlet jar包依赖)

本文详细介绍了如何使用Java从零开始实现一个类似Spring MVC的轻量级框架。通过配置Servlet、编写Action、实现Service、DI注解以及创建DispatcherServlet,逐步构建一个简化版的控制器调度和依赖注入系统。代码已上传至CSDN,可供学习参考。
摘要由CSDN通过智能技术生成
开始前的准备
开发环境:jdk8+tomcat7+IDEA+maven
所需jar包:Servlet2.x
那么现在就开始吧


开发过程(绝对详细)
首先,启动IDEA创建一个maven项目,并创建下图所示的包结构,包名你们自己起就可以了

这里写图片描述

然后配置pom.xml,在里面引入Servlet依赖就可以了,这里我引入的2.x的,你们不要引入3.0的,虽然3.0的可以不需要web.xml配置,不过这里需要加载配置文件的
</dependency>
      <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
          <scope>provided</scope>
      </dependency>
在Action中创建一个类,这里我创建的类为DemoAction.java,该类的作用在SSM框架中等同于Controller类,在里面写入下面代码:
@Controller("demoAction")
@RequestMapping("/web")
public class DemoAction {
   

    @Autowired("tom")
    private IDemoService demoService;

    @RequestMapping("/query")
    public void query(HttpServletRequest request, HttpServletResponse response,
                      @RequestParam("name") String name) throws IOException {

        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");

        String result = demoService.get(name);

        PrintWriter writer = response.getWriter();
        writer.print(result);
        writer.close();
    }

}
这里要注意一点,里面我所用到的注解都是需要自己实现的,而不是Spring框架中的
然后我们来将所有类一个个的写上,首先先写Service吧,IDemoService是一个接口类,代码如下:
public interface IDemoService {
    public String get(String name);
}
它有一个实现类DemoService:
@Service("tom")
public class DemoService implements IDemoService {
   

    public String get(String name){
        return "my name is " + name;
    }
}
到这里,可以看到前面已经使用了很多的注解,但是都是报错的,所以现在我们来一个个的实现这些注解吧,很简单,我就直接贴到下面了:
Controller.java
//在类上可以使用
@Target({ElementType.TYPE})
//在运行时起作用
@Retention(RetentionPolicy.RUNTIME)
//让它可以识别
@Documented
public @interface Controller {
   

    String value() default "";
}

RequestMapping.java
//在类和方法上可以使用
@Target({ElementType.TYPE, ElementType.METHOD})
//在运行时起作用
@Retention(RetentionPolicy.RUNTIME)
//让它可以识别
@Documented
public @interface RequestMapping {
   

    String value() default 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值