spring笔记
发布人:shili8
发布时间:2024-12-31 21:15
阅读次数:0
**Spring笔记**
###1. Spring概述Spring是一个开源的Java应用框架,用于构建企业级应用。它提供了一个松散耦合的组件模型,使开发者能够轻松地创建、配置和管理应用程序。
####1.1 Spring特点* **松散耦合**:Spring使用依赖注入(Dependency Injection)来减少代码之间的耦合度。
* **可配置**:Spring提供了多种配置方式,包括XML和JavaConfig。
* **AOP支持**:Spring提供了Aspect-Oriented Programming(AOP)的支持,使开发者能够更轻松地实现横切关注点。
* **事务管理**:Spring提供了对数据库事务的支持。
###2. Spring核心概念####2.1 Bean在Spring中,Bean是指任何一个Java类实例。每个Bean都有自己的生命周期,包括创建、配置和销毁。
####2.2 IOC容器IOC(Inversion of Control)容器是Spring的核心组件,它负责管理Bean的生命周期。
####2.3 BeanFactoryBeanFactory是Spring提供的一个接口,用于获取Bean实例。它提供了多种方法来获取Bean实例。
###3. Spring配置####3.1 XML配置XML配置是Spring最常用的配置方式之一。通过使用XML文件,可以轻松地定义Bean及其属性。
xml<beans xmlns=" /> xmlns:xsi=" /> xsi:schemaLocation=" /> <bean id="user" class="com.example.User"> <property name="name" value="John"/> <property name="age" value="30"/> </bean> </beans>
####3.2 JavaConfig配置JavaConfig是Spring提供的一个注解式的配置方式。通过使用Java类来定义Bean及其属性。
java@Configurationpublic class AppConfig { @Bean public User user() { return new User("John",30); } }
###4. Spring AOP####4.1 Aspect-Oriented Programming(AOP)
AOP是一种编程方式,用于实现横切关注点。它使开发者能够更轻松地实现代码重复。
####4.2 @AspectJ注解式的AOP配置@AspectJ是Spring提供的一个注解式的AOP配置方式。通过使用Java类来定义Aspect及其方法。
java@Aspectpublic class LoggingAspect { @Before("execution(* com.example.*.*(..))") public void logBefore() { System.out.println("Before method execution"); } }
###5. Spring事务管理####5.1 @Transactional注解式的事务配置@Transactional是Spring提供的一个注解式的事务配置方式。通过使用Java类来定义方法及其事务。
java@Servicepublic class UserService { @Transactional public void saveUser(User user) { // Save user to database } }
###6. Spring MVC####6.1 DispatcherServletDispatcherServlet是Spring提供的一个Servlet,用于处理HTTP请求。
####6.2 ControllerController是Spring提供的一个接口,用于定义RESTful API。
java@RestController@RequestMapping("/api") public class UserController { @GetMapping("/{id}") public User getUser(@PathVariable Long id) { // Return user object } }
###7. Spring Boot####7.1 SpringApplicationSpringApplication是Spring提供的一个类,用于创建Spring应用。
####7.2 @SpringBootApplication注解式的配置@SpringBootApplicaton是Spring提供的一个注解式的配置方式。通过使用Java类来定义Spring应用及其配置。
java@SpringBootApplicationpublic class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
###8. Spring Cloud####8.1 Config ServerConfig Server是Spring提供的一个服务,用于管理配置文件。
####8.2 @EnableConfigServer注解式的配置@EnableConfigServer是Spring提供的一个注解式的配置方式。通过使用Java类来定义Config Server及其配置。
java@SpringBootApplication@EnableConfigServerpublic class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
###9. Spring Data JPA####9.1 JpaRepositoryJpaRepository是Spring提供的一个接口,用于定义Repository。
java@Repositorypublic interface UserRepository extends JpaRepository{ }
###10. Spring Security####10.1 WebSecurityConfigurerAdapterWebSecurityConfigurerAdapter是Spring提供的一个类,用于配置安全性。
####10.2 @EnableWebSecurity注解式的配置@EnableWebSecurity是Spring提供的一个注解式的配置方式。通过使用Java类来定义Web Security及其配置。
java@Configuration@EnableWebSecuritypublic class WebSecurityConfig { @Bean public UserDetailsService userDetailsService() { // Return UserDetailsService instance } }
###11. Spring Test####11.1 @RunWith(SpringRunner.class)
@RunWith(SpringRunner.class)是Spring提供的一个注解式的配置方式。通过使用Java类来定义测试及其配置。
java@RunWith(SpringRunner.class) public class MyTest { @Test public void test() { // Test code here } }
###12. Spring Boot Test####12.1 @RunWith(SpringRunner.class)
@RunWith(SpringRunner.class)是Spring提供的一个注解式的配置方式。通过使用Java类来定义测试及其配置。
java@RunWith(SpringRunner.class) public class MyTest { @Test public void test() { // Test code here } }
###13. Spring Boot Actuator####13.1 @EnableSpringBootSecurity注解式的配置@EnableSpringBootSecurity是Spring提供的一个注解式的配置方式。通过使用Java类来定义安全性及其配置。
java@Configuration@EnableSpringBootSecuritypublic class SecurityConfig { @Bean public UserDetailsService userDetailsService() { // Return UserDetailsService instance } }
###14. Spring Boot DevTools####14.1 @EnableSpringBootDevTools注解式的配置@EnableSpringBootDevTools是Spring提供的一个注解式的配置方式。通过使用Java类来定义开发工具及其配置。
java@Configuration@EnableSpringBootDevToolspublic class DevToolsConfig { @Bean public WebServerFactoryCustomizerwebServerFactoryCustomizer() { // Return WebServerFactoryCustomizer instance } }
###15. Spring Boot Starter####15.1 @EnableSpringBootStarter注解式的配置@EnableSpringBootStarter是Spring提供的一个注解式的配置方式。通过使用Java类来定义启动器及其配置。
java@Configuration@EnableSpringBootStarterpublic class StarterConfig { @Bean public WebServerFactoryCustomizerwebServerFactoryCustomizer() { // Return WebServerFactoryCustomizer instance } }
###16. Spring Boot Test####16.1 @RunWith(SpringRunner.class)
@RunWith(SpringRunner.class)是Spring提供的一个注解式的配置方式。通过使用Java类来定义测试及其配置。
java@RunWith(SpringRunner.class) public class MyTest { @Test public void test() { // Test code here } }
###17. Spring Boot Web####17.1 @EnableSpringBootWeb注解式的配置@EnableSpringBootWeb是Spring提供的一个注解式的配置方式。通过使用Java类来定义Web及其配置。
java@Configuration@EnableSpringBootWebpublic class WebConfig { @Bean public WebServerFactoryCustomizerwebServerFactoryCustomizer() { // Return WebServerFactoryCustomizer instance } }
###18. Spring Boot WebSocket####18.1 @EnableSpringBootWebSocket注解式的配置@EnableSpringBootWebSocket是Spring提供的一个注解式的配置方式。通过使用Java类来定义WebSocket及其配置。
java@Configuration@EnableSpringBootWebSocketpublic class WebSocketConfig { @Bean public WebServerFactoryCustomizerwebServerFactoryCustomizer() { // Return WebServerFactoryCustomizer instance } }
###19. Spring Boot REST####19.1 @EnableSpringBootREST注解式的配置@EnableSpringBootREST是Spring提供的一个注解式的配置方式。通过使用Java类来定义REST及其配置。
java@Configuration@EnableSpringBootRESTpublic class RESTConfig { @Bean public Web