ssm框架注解的作用,Spring框架----用于创建对象的Component注解

 2023-09-28 阅读 33 评论 0

摘要:1.Component注解 当我们在AccountServiceImpl上面写一个@component注解的时候,他就会把这个类反射创建一个对象,并且存入spring容器中。spring容器时一个map容器,是由key-value组成的,存这个对象,是value。那么key呢? 属性

1.Component注解

当我们在AccountServiceImpl上面写一个@component注解的时候,他就会把这个类反射创建一个对象,并且存入spring容器中。spring容器时一个map容器,是由key-value组成的,存这个对象,是value。那么key呢?
属性:value:用于指定bean的id,当我们不写时,它的默认值时当前类名,且首字母小写
按照下面代码,我们直接运行是错误的

@Component
public class AccountServiceImpl implements IAccountService {
//1.获取核心容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
//2.根据id获取bean对象
IAccountService as=(IAccountService)ac.getBean("accountServiceImpl");       //第一种,拿到object类型,强转
System.out.println(as);

在这里插入图片描述
当我们解析配置文件时,就会创建容器,从而创建对象,而此时配置是空的,没有定义。在解析配置文件的时候,又是如何知道在哪儿写了注解呢?
前面的时候说过了有5个jar包,其中有一个spring-aop的jar包是现在所要用的。
所以在bean.xml我们需要有一项配置
首先需要在官网导入约束和依赖
告知spring在创建容器时要扫描的包,配置所需要的标签不是在beans的约束中,而是一个名称为context名称空间和约束中

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd">

ssm框架注解的作用、加入这个标签之后,就会扫描这个包下的所有注解

<context:component-scan base-package="com.yujie"></context:component-scan>

在这里插入图片描述
注解相对xml更为简单一些,因为这里面直接写上一个标签,后来写上一个注解,之后再也不用在bean.xml中配置了,想创建对象就加注解。
如果要加一个id,就用value即可。

@Component(value="accountService")
public class AccountServiceImpl implements IAccountService 

细节:如果一个注解中只有一个value属性,那么value属性的名称时可以不写的

@Component("accountService")

2.Component衍生出的注解

ssm框架的dao层需要注解吗。1.用于创建对象的注解
@component:用于把当前对象存入spring容器中
@Controller:一般用在表现层
@Service:一般用在业务层
@Repository:一般用在持久层
以上三个注解,他们的作用和属性与component是一模一样的,换句话说,component能做的事情,他们三个也能做

他们三个是spring框架为我们提供明确三层使用的注解,使我们的三层对象更加清晰。
如果我们随便用,也没有代码的问题,没有一个限制。他们是继承的关系。

@Repository("accountDao")
public class AccountDaoImpl implements IAccountDao 
@Service(value="accountService")
public class AccountServiceImpl implements IAccountService 

如果不属于三层中的任何一层,我们就用component来创建

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/101714.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息