【spring】注解方式的bean管理

【spring】注解方式的bean管理【spring】注解方式的bean管理

大家好,又见面了,我是你们的朋友全栈君。

      spring的bean管理有两种方式,前面我们介绍了xml配置文件方式的bean管理,现在就讲一下用注解的方式来管理bean。纾解方式的bean管理主要包括用注解创建对象和用注解注入属性。

      注解就是在代码中以@开头,格式为@注解名称(属性名称=属性值)的一行代码,注解可以使用在类、方法和属性上面。

一.用注解创建对象

      在配置文件中,使用<context:component-scan></context:component-scan>开启注解扫描,它会扫描对应的包下面的类、方法、属性。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 

	<!-- 开启注解扫描
	    1.到包里面扫描类、方法、属性上面是否有注解 -->
	<context:component-scan base-package="cn.itcast.*"></context:component-scan>
</beans>

   还有一个<context:annotation-config></context:annotation-config>标签,和<context:component-scan></context:component-scan>不同的是,它只扫描属性上面的注解。

       添加User类,并在类上添加@Component注解,来完成user对象的创建:

@Component(value="user")
public class User {
	public void add(){
		System.out.println("add......");
	}
}

      和@Component注解功能相同的还有@Controller、@Service、@Repository三个注解,它们都作用来类上,用来创建对象。区别是后三个分别应用于WEB层、业务层和持久层。

二.用注解注入属性

      首先创建UserService和UserDao两个类,并在service类里面定义dao类型的属性:

@Service("userService")
public class UserService {
	private UserDao userdao;
	
	public void add(){
		userdao.add();
	}
}
@Component(value="userDao")
public class UserDao {

	public void add(){
		System.out.println("dao......");
	}
}

      下面我们通过注解来注入UserDao类型的属性(使用注解方式注入对象的时候不需要set方法):

1.@Autowired

@Autowired
private UserDao userdao;

2.@Resource

@Resource(name="userDao")
private UserDao userdao;

      @Autowired和@Resource的区别在于,@Autowired是通过UserDao类名找类对应的对象,而@Resource则通过作用在类上面的注解的value值来创建dao对象。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105635.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jq tmpl输出编码html,jQuery tmpl 讲解「建议收藏」

    jq tmpl输出编码html,jQuery tmpl 讲解「建议收藏」2016-07-0114:30陈铭竑1、什么是jQuery-tmpl(1)jQuery的一个类库(2)一个轻量级的前端模板引擎(vue.js也是一种前端模板引擎)(3)可以在模板中实现逻辑运算2、jQuery-tmpl的语法(1)占位:${变量}或{{=变量}}注:=和变量之间一定要有空格(2)循环{{each(i,obj)objs}}…{{/each}}(3)选择{{if条件}}….

    2022年6月16日
    43
  • MobSF 框架安装使用部署

    MobSF 框架安装使用部署1.MobSF简介#MobSF是MobileSecurityFramework的缩写,这是一款智能化的开源移动应用(Android、IOS、Windows)测试框架,可以对应用进行动态、静态分析,现在只支持Android动态分析。支持对APK、IPA文件及源码压缩包进行审计分析,可以对Android和IOS安全进行分析。MobSF还可以通过APIFuzzer功能,对WebAPI的安全检测,可以对应用收集信息、分析安全头部信息、识别移动API的具体漏洞,如XXE、SSRF、路径遍历,IDOR以及

    2022年5月31日
    38
  • 本地phpstudy开发中apache可以用,nginx不可用,

    本地phpstudy开发中apache可以用,nginx不可用,

    2021年10月12日
    44
  • leetcode-172. 阶乘后的零[通俗易懂]

    leetcode-172. 阶乘后的零[通俗易懂]给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。class Solution {public: int trailingZeroes(int n) { int ans = 0; for(int i = 5;i <= n;i += 5){

    2022年8月9日
    5
  • 龙芯版UOS 自带浏览器无法使用flash在线播放视频

    龙芯版UOS 自带浏览器无法使用flash在线播放视频龙芯版UOS自带浏览器无法使用flash在线播放视频1.案例无法播放视频龙芯CPU使用MIPS指令集,用互联网的最新flash(一般情况下,是X86指令集flash),点击下载安装最新flash,会提示安装失败。2.解决办法a.打开命令界面(效果如下)b1.输入命令:sudoaptinstallfirefox-flashplayerb2.输入命令:输入密码3.完成后重新打开UOS自带浏览器,就可以轻松看视频。祝大家生活愉快!!!在此鸣谢:感谢龙芯大佬指导

    2022年6月6日
    38
  • nvcat premium 15 激活码_在线激活

    (nvcat premium 15 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
    113

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号