提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- Spring 基础知识点总览
- 1. Spring 框架简介
- 2. IoC(控制反转)与 DI(依赖注入)
- 2.1 IoC 容器
- 2.2 依赖注入方式
- 示例代码(构造器注入)
- 3. Spring MVC
- 3.1 核心组件
- 示例代码(Spring MVC 控制器)
- 4. AOP(面向切面编程)
- 4.1 示例代码(使用注解的 AOP)
- 5. Spring Boot
- 5.1 示例代码(Spring Boot 主类)
- 总结
Spring 基础知识点总览
1. Spring 框架简介
Spring 是一个开源的 Java/Java EE 全功能栈(full-stack)的应用程序框架,它提供了广泛的企业级功能,包括数据访问、事务管理、Web 框架、AOP(面向切面编程)、测试等。Spring 框架的核心特性之一是 IoC(控制反转)和 DI(依赖注入)。
2. IoC(控制反转)与 DI(依赖注入)
2.1 IoC 容器
IoC 容器是 Spring 框架的核心,它负责创建、配置和管理应用中的对象及其依赖关系。
2.2 依赖注入方式
- 构造器注入
- Setter 注入
- 接口注入(较少使用)
示例代码(构造器注入)
// 定义一个简单的服务类
public class UserService {private UserRepository userRepository;// 构造器注入public UserService(UserRepository userRepository) {this.userRepository = userRepository;}public void printUserInfo() {User user = userRepository.getUserById(1);System.out.println("User: " + user.getName());}
}// 定义一个简单的仓库接口和实现类
public interface UserRepository {User getUserById(int id);
}public class UserRepositoryImpl implements UserRepository {@Overridepublic User getUserById(int id) {// 模拟从数据库获取用户return new User(id, "John Doe");}
}// 配置类
@Configuration
public class AppConfig {@Beanpublic UserRepository userRepository() {return new UserRepositoryImpl();}@Beanpublic UserService userService(UserRepository userRepository) {return new UserService(userRepository);}
}// 主类
public class MainApplication {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);UserService userService = context.getBean(UserService.class);userService.printUserInfo();context.close();}
}
3. Spring MVC
Spring MVC 是一种基于 Java 的实现 MVC(Model-View-Controller)设计模式的 Web 框架。
3.1 核心组件
- DispatcherServlet:前端控制器,负责接收请求并分发给相应的处理器。
- HandlerMapping:负责根据请求 URL 找到对应的处理器。
- HandlerAdapter:负责调用处理器的方法并处理返回值。
- ViewResolver:负责解析视图名并生成视图对象。
示例代码(Spring MVC 控制器)
@Controller
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public String getUser(@PathVariable int id, Model model) {User user = userService.getUserById(id);model.addAttribute("user", user);return "userView";}
}
4. AOP(面向切面编程)
AOP 是一种编程范式,它允许你将横切关注点(如日志、事务管理等)从业务逻辑中分离出来,以提高代码的可维护性和可读性。
4.1 示例代码(使用注解的 AOP)
@Aspect
@Component
public class LoggingAspect {@Before("execution(* com.example.service.*.*(..))")public void logBefore() {System.out.println("Method execution started");}@After("execution(* com.example.service.*.*(..))")public void logAfter() {System.out.println("Method execution finished");}
}
5. Spring Boot
Spring Boot 是基于 Spring 框架的一个快速开发工具包,它简化了基于 Spring 的应用的创建和开发过程。
5.1 示例代码(Spring Boot 主类)
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
这个模板只是一个起点,你可以根据自己的学习进度和需要添加更多的知识点和代码示例。希望这个模板能帮助你有效地分享你的 Spring 学习成果!
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录Spring基础知识点总览。