springboot 调用存储过程,spring bean 存储哪里
目录
存储方式(注解)@控制器@服务@存储库@配置@组件方法注解@Bean重命名豆五大注解之间的关系从春天中获取对象@自动连线注入注解三种注入的优缺点@Resource@Autowired和@资源的区别总结
存储方式(注解)
使用注解的方式存储业务对象到春天中会更简单
1.配置spring.xml设置spring存入对象的根路径,目的是让春天项目启动后,能够去根路径下的所有类中扫描并标识为需要存储到春天中的对象存储到春天中
?可扩展标记语言版本=1.0 编码=UTF八号?豆子xmlns= http://www。spring框架。org/schema/beans xmlns : xsi= http://www。w3。org/2001/XML schema-instance xmlns : content= http://wwwspring框架。 xsi : schema location= http://www。spring框架。http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www。spring框架。组织/模式/上下文/spring-配置一下:bean注解扫描的根路径(方面后面更简单存储对象到春天容器)-内容:组件-扫描base-package= com。位/内容:组件-扫描/bean 2 .使用注解将豆对象存储到春天框架中
注解分类:
1.类注解:@控制器[控制器】、@服务【业务逻辑层】、@ Repository数据持久层】、@Component【组件类】、@配置【配置类】
2.方法注解:@Bean(必须配合类注解使用)
@Controller
创建豆对象
包com.bit导入org。spring框架。刻板印象。控制器;/** *描述:*用户: LMP *日期: 2022-05-24 *时间: 19:23 */@控制器公共类用户控制器{ public void say Hi(字符串名称){ system。出去。println( Hi控制器名称);}}读取豆对象
包com.bit导入org。spring框架。语境。应用程序上下文;导入组织。spring框架。语境。支持。classpathmlaplicationcontext/** *描述:*用户: LMP *日期: 2022-05-24 *时间: 15:25 */公共类App { public static void main(String[]args){//先获取对象的spring应用程序上下文context=new classpathmlaplicationcontext( spring。XML’);//从春天中获得存入的对象(将存入的类首字母小写,若类名字符大于注射毒品个,并且前两个字符都是大写,那么使用原类名作为豆的名字)用户控制器用户控制器=上下文。getbean(用户控制器,用户控制器。类);用户控制器。说hi(‘位’);}}
odian">
@Service
和controller一样
@Repository
和controller一样
@Configuration
和controller一样
@Component
和controller一样
方法注解@Bean
一般写在组件里面,方法注解必须配合类注解使用,因为Spring默认是类级别的扫描
package com.bit.util;import com.bit.Model.User;import com.sun.org.apache.bcel.internal.generic.RETURN;import org.springframework.context.annotation.Bean;import org.springframework.stereotype.Component;/** * Description: * User: lmp * Date: 2022-05-24 * Time: 21:14 */@Componentpublic class UserBean { @Bean //将当前对象存储在Spring当中 public User user1(){ User user = new User(); user.setId(1); user.setName("zhangsan"); user.setAge(18); return user; }}
重命名bean
可以通过设置name属性给Bean对象进行重命名操作
@Bean重命名可以有多个别名,但是当指定别名之后,方法名就取不到对象了
package com.bit.util;import com.bit.Model.User;import com.sun.org.apache.bcel.internal.generic.RETURN;import org.springframework.context.annotation.Bean;import org.springframework.stereotype.Component;/** * Description: * User: lmp * Date: 2022-05-24 * Time: 21:14 */@Componentpublic class UserBean { @Bean(name = {"u1","userInfo1"}) //将当前对象存储在Spring当中 public User user1(){ User user = new User(); user.setId(1); user.setName("zhangsan"); user.setAge(18); return user; } @Bean(name = "u2") //将当前对象存储在Spring当中 public User user2(){ User user = new User(); user.setId(1); user.setName("lisi"); user.setAge(18); return user; }}
五大注解之间的关系
从业务逻辑来说,@Controller是@Component的子类,同样,@Service,@Repository,@Configuration都是@Component的子类
从Spring中获取对象
@Autowired
属性注入(属性注册)
Setter注入
构造方法注入
注入注解
@Qualifier 可以解决同一个类有两个以上的对象的情况,可以使用这个注解,它相当于@Resource(name=)
三种注入的优缺点
属性注入的优点是简洁,只适用于IoC容器,如果非IOC容器不可用,会报空指针异常构造方法注入是Spring推荐的注入方式,缺点是如果有多个注入会显得比较臃肿Setter方式是Spring前期版本推荐的注入方式,但通用性不如构造方法,
@Resource
对象注入的另一种方式:使用@Resource注解,但Resource注解不能使用在构造方法上
@Autowired和@Resource的区别
1.出身不同,他们所属的包不一样,Resource属于javajdk中的javax包中,而Autowired属于springframework包中的
2.作用范围不同,Resource不可以使用在构造方法注解上,而autowired可以
3.功能不同 Resource可以使用name属性,从而完成对象的别名注入,而autowired没有。
总结
到此这篇关于Spring更简单的存储方式与获取方式的文章就介绍到这了,更多相关Spring存储与获取方式内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。