
Spring框架应用
文章平均质量分 72
Spring框架知识点
Hamilton_Huan
coder
展开
-
SpringMVC处理请求过程详解
DispatcherServlet接收到请求后,会根据请求信息创建一个HttpServletRequest对象,该对象包含了请求的所有信息。然后,DispatcherServlet会调用HandlerMapping处理器映射器,根据请求信息找到对应的处理器(Controller)。DispatcherServlet是SpringMVC的核心组件,它是一个前端控制器(Front Controller),负责接收所有的请求,并将请求分发给相应的处理器(Handler)。- 如果找不到对应的视图对象,抛出异常。原创 2023-10-12 08:51:03 · 167 阅读 · 0 评论 -
Spring @RequestMapping注解使用
例如,我们可以使用params属性来指定请求参数,使用headers属性来指定请求头,使用cookies属性来指定请求Cookie,使用values属性来指定请求参数值,以及使用matrix属性来指定矩阵参数。当用户发送一个GET请求到"/user"路径,并且请求参数中包含"username"参数时,Spring MVC会调用getUser方法,并将请求参数中的"username"值作为String对象的参数传递给方法。然后,它返回创建的User对象。// 创建用户并保存到数据库。原创 2023-10-08 09:26:52 · 73 阅读 · 0 评论 -
Spring @Transaction 注解用法
在 Spring 框架中,@Transaction 注解是用于管理事务的一种重要工具。@Transaction 注解可以确保这些操作要么全部成功,要么全部失败,从而保持数据的一致性。当它应用在类上时,它表示这个类的所有 public 方法都将运行在一个事务的上下文中。如果没有指定其他行为,或者指定 readOnly 为 false,那么这个事务就是可写的。此方法的事务只读,意味着在这个事务中不会对数据库进行修改。它可用于查询等只读操作的事务。这个事务可以读写,如果发生异常,也会回滚所有对数据库的修改。原创 2023-09-27 18:59:43 · 573 阅读 · 0 评论 -
Spring@Async注解用法
在Spring框架中,@Async注解用于将一个方法标记为异步方法,即该方法将在单独的线程中运行,不会阻塞主线程。这时,我们可以使用@Async注解将文件上传操作异步执行。在上面的示例中,uploadFile()方法被标记为@Async,当该方法被调用时,文件上传操作将在单独的线程中执行,从而不会阻塞主线程。在上面的示例中,asyncMethod()方法被标记为@Async,这意味着该方法将在单独的线程中执行。在需要执行异步操作的方法上添加@Async注解,以将其标记为异步方法。// 执行文件上传操作。原创 2023-09-24 13:27:01 · 90 阅读 · 0 评论 -
Spring中@RefreshScope用法原理
具体来说,@RefreshScope 注解可以用于将配置属性绑定到一个类或方法上,当配置信息发生变化时,Spring 会自动刷新这些属性,并重新绑定到对应的类或方法上。在默认情况下,Spring 会使用 getSingleton() 方法获取单例对象,但是在这个方法中,我们可以进行一些特殊的操作,例如重新加载配置属性。我们将使用 @RefreshScope 注解将时间戳绑定到配置信息上,当配置信息发生变化时,时间戳会自动刷新。接收到通知后,服务会重新加载配置信息,并重新绑定到对应的类或方法上。原创 2023-09-22 08:41:38 · 1344 阅读 · 0 评论 -
Spring @Scheduled 注解的使用
在分钟字段中,"/10" 表示每隔 10 分钟执行一次。在小时字段中,"/10" 表示每隔 10 小时执行一次。在日期字段中,"/10" 表示每隔 10 天执行一次。在星期字段中,"/10" 表示每隔 10 天(一周)执行一次。在秒字段中,"/10" 表示每隔 10 秒执行一次。在年份字段中,"/10" 表示每隔 10 年执行一次。每个字段都有一组可接受的值,可以是一个具体的数值,一个范围(用连字符分隔),一个递增序列(用逗号分隔),或者使用特殊字符来表示特定的含义。例如,"0-5" 表示从 0 到 5。原创 2023-09-21 08:52:09 · 312 阅读 · 0 评论 -
Spring@Value注解的使用
在使用@Value注解时,需要注意参数的使用方法和异常情况的处理,并根据实际需求选择合适的优化措施,以提高应用程序的性能和可维护性。例如,当需要注入的值不存在时,如果没有设置默认值,并且将required参数设置为true,那么就会抛出异常。当需要注入的值不存在时,将使用该默认值。要在Spring容器中注入值,只需要在相应的属性上添加@Value注解,并在注解中指定需要注入的值即可。在这个例子中,将配置文件中的字符串转换为整数类型,如果配置文件中没有名为my.property的值,那么将使用0作为默认值。原创 2023-09-20 08:42:24 · 223 阅读 · 0 评论 -
Spring中@Condition注解用法
在这个示例中,MyCondition 中的 matches() 方法将根据 someValue 的值以及其他可能的环境因素来决定是否创建 myBean。在这个示例中,@ConditionalOnClass(SpringBootTest.class) 注解告诉 Spring Boot,只有当 SpringBootTest 类存在于类路径中时,才创建 myBean。一般来说,我们可以通过检查类路径上的某个类是否存在,或者某个系统属性是否存在,或者某个 Spring Bean 是否可用等等来实现自己的条件。原创 2023-09-19 08:44:06 · 422 阅读 · 0 评论 -
Spring @Import注解的使用
如果你想自定义Bean的名称,你可以使用 @Component("myBean") 或者 @Service("myService") 这样的注解来指定Bean的名称。然后,在你的主配置类中,你可以使用@Import注解来导入其他的配置类。在Spring框架中,@Import注解用于导入其他的配置类或组件到当前的配置类中,从而可以扩展当前配置类的功能。使用@Import注解,你可以把其他的配置类中的Bean定义导入到当前的配置类中,这样你就可以在当前的配置类中使用这些Bean定义。三、导入带有参数的配置类。原创 2023-09-15 08:44:00 · 151 阅读 · 0 评论 -
Spring中@ComponentScan和@ComponentScans注解用法
当 Spring 应用启动时,它会扫描这些包,并查找 @Component、@Controller、@Service、@Repository 等注解的类,然后自动注册这些类为 Spring Bean。在这个例子中,Spring 会扫描 com.example.myapp 和 com.example.myotherapp 这两个包及其子包,并自动注册所有的 Spring 组件。在这个例子中,Spring 会扫描 com.example.myapp 包及其子包,并自动注册所有的 Spring 组件。原创 2023-09-14 09:00:06 · 720 阅读 · 0 评论 -
Spring @Bean注解使用
第二个方法myAnotherService()返回一个新的MyAnotherServiceImpl实例,这个实例依赖于MyService bean,因此Spring将会自动将myService()方法返回的MyService bean注入到MyAnotherServiceImpl实例中。当用在类上时,Spring会在实例化该类时自动创建该类的实例,并将其添加到Spring应用上下文中。在Spring框架中,@Bean注解用于标记一个类或一个配置方法,以指示它应该被注册为Spring应用上下文中的bean。原创 2023-09-13 19:36:51 · 550 阅读 · 1 评论 -
Druid数据源是如何被创建的
参数配置中还必须有这个参数spring.datasource.type,而且这个类型也决定了使用哪种数据源,再看我们的参数配置,也确实有这个配置spring.datasource.type=com.alibaba.druid.pool.DruidDataSource(把这个去掉启动就会报错,无法初始化数据源),搞清楚了源头我们继续跟进入参properties,发现了spring.datasource这个前缀,跟我们的配置中心是匹配的,但是像maxActive这些参数在这个类中是没有的。原创 2023-07-20 17:55:28 · 352 阅读 · 0 评论 -
WebMvcConfigurationSupport类使用方法
一个容器内只能有一个WebMvcConfigurationSupport的实现类,也就是说不能有多个继承类,否则只有一个生效,会造成未知的错误,如果想在已有实现类的基础上(基础jar包中存在webConfig)还想继续添加拦截器,可以选择继承WebConfig,但是要。WebMvcConfigurationSupport类是SpringMVC提供的扩展类,用于提供拦截器、资源处理器等注册功能。//后缀匹配模式,默认为true,路径完全匹配才行(防止.lzma后缀的接口漏洞)原创 2022-08-19 19:22:55 · 1377 阅读 · 0 评论 -
一个接口多个实现?由Spring框架帮你选择
一个接口多个实现,Spring框架帮你选择原创 2022-07-08 17:37:15 · 412 阅读 · 0 评论