【自学笔记】Spring基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 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 {
@Override
public User getUserById(int id) {
// 模拟从数据库获取用户
return new User(id, "John Doe");
}
}
// 配置类
@Configuration
public class AppConfig {
@Bean
public UserRepository userRepository() {
return new UserRepositoryImpl();
}
@Bean
public 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 {
@Autowired
private 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基础知识点总览。