# mini-spring **Repository Path**: sclear/mini-spring ## Basic Information - **Project Name**: mini-spring - **Description**: 针对spring的仿写 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-03 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: mini-spring ## README # MiniSpring 框架 这是一个简易版的 Spring 框架实现,支持依赖注入、组件扫描、MVC 控制器等功能。 ## 功能特性 - **组件扫描**:自动扫描和注册 Bean。 - **依赖注入**:支持字段级别的 `@Autowired` 注解。 - **生命周期管理**:支持 `@PostConstruct` 注解的方法初始化。 - **MVC 架构**:实现了基本的控制器支持,包括请求映射、参数解析和视图渲染。 ## 核心组件 - **ApplicationContent**:核心容器,负责管理 Bean 的创建和生命周期。 - **BeanDefinition**:描述 Bean 的元信息。 - **DispatcherServlet**:MVC 的核心控制器。 - **BeanPostProcessor**:Bean 的后处理器接口。 ## 使用示例 ### 创建组件类 ```java @Component public class Cat { public String name; @Autowired private Dog dog; @PostConstruct public void init() { // 初始化逻辑 } } ``` ### 创建控制器 ```java @RequestMapping("/hello") @Component @Controller public class HelloController { @RequestMapping("/a") public String hello(@Param("name") String name, @Param("age") Integer age) { return "Hello, " + name + " age: " + age; } @RequestMapping("/json") @ResponseBody public User json(@Param("name") String name, @Param("age") Integer age) { return new User(name, age); } @RequestMapping("/html") public ModelView html(@Param("name") String name, @Param("age") Integer age) { ModelView mv = new ModelView(); mv.setView("hello.html"); Map context = new HashMap<>(); context.put("name", name); context.put("age", age.toString()); mv.setContext(context); return mv; } } ``` ## 启动应用 运行 `TomcatDemo` 类以启动服务器: ```java @Component public class TomcatDemo { @Autowired DispatcherServlet dispatcherServlet; @PostConstruct public void start() throws LifecycleException { // 启动逻辑 } } ``` ## 许可证 该项目使用 MIT 许可证。详情请参阅 LICENSE 文件。