当前位置: 首页 > news >正文

苏州风险区域最新优化官网咨询

苏州风险区域最新,优化官网咨询,广东广州,北京建设局投诉网站1.关于Spring中的注解装配的作用 Spring中的注解装配简化了xml中bean的配置,大大提高了开发效率。 原本我们想在spring容器中使用某个类需要先在xml中配置该类的bean。使用注解后可以直接通过包扫描的方式自动在我们调用类时自动装配。 例如: 当我们想…

1.关于Spring中的注解装配的作用

Spring中的注解装配简化了xml中bean的配置,大大提高了开发效率。

原本我们想在spring容器中使用某个类需要先在xml中配置该类的bean。使用注解后可以直接通过包扫描的方式自动在我们调用类时自动装配。

例如:

当我们想要使用UserDaO实现类时需要再Xml配置文件上添加如下配置

<bean id="userDao" class="com.yc.dao.impl.UserDaoImpl" />

 但是到我们在类上添加注解:@complicate一样可以到达上述xml的效果

@Repository("userDao")
public class UserDaoImpl implements UserDao {@Overridepublic void getUser() {System.out.println("注解测试==>、、、");return ;}
}

xml中的

<bean class="com.xxxx" />就相当于===》@Repository()

<bean id="userDao"  /> 就箱单于==》@Repository("userDao")

但为了可以识别到我们的注解需要再xml中配置包扫描:

    <context:component-scan base-package="com.yc"/>//此处的包要写成自己对应的项目包

如此一来bean的配置也就大大简化,提高了开发效率。

2.Ioc中的注解:

注解说明
@Component使用在类上用于实例化Bean 相当于 <bean></bean>
@Controller使用在web层类上用于实例化Bean
@Service使用在service层类上用于实例化Bean
@Repository使用在dao层类上用于实例化Bean

需要注意的是:使用注解时,当类级别注解不指定具体的 bean 名称时,Spring 会使用类的名称(byname)作为 bean 的名称,比如UserDaoImpl的类加上注解@Repository,而不设置注解参数时,spring会默认以userDaoImpl作为该bean的 id。所以在使用过程中应该注意。

例如:

你会发现注解不设置参数时

@Repository 
public class UserDaoImpl implements UserDao { private User user; public void setUser(User user){ this.user=user; }@Override public void getUser() { System.out.println("注解测试==>、、、"); return ; } 
}

 当我通过测试类去调用时,控制台就会报错,显示找不到bean。

测试类如下:

    @Testpublic void Springtest2(){ClassPathXmlApplicationContext cac=new ClassPathXmlApplicationContext("springConfig.xml");UserDao userDao=cac.getBean(UserDaoImpl.class);userDao.getUser();System.out.println("````");}

而加上(“userDao”)便可以找到

@Repository("userDao") 
public class UserDaoImpl implements UserDao { private User user; public void setUser(User user){ this.user=user; }@Override public void getUser() { System.out.println("注解测试==>、、、"); return ; } 
}

原因:

在 Spring 框架中,@Repository 注解用于标识一个类属于数据访问层(DAO)的组件。默认情况下,Spring 会按照类型来查找并创建相应的 bean 实例。

在示例中,当类级别注解 @Repository 不指定具体的 bean 名称时,Spring 使用类的名称(byname)作为 bean 的名称此处的例子即以userDaoImpl作为其名称而不是以userDao为名称,所以在容器扫描识别时才会显示找不到userDao的bean,容器只扫描到userDaoImpl的bean。因此,如果你的类名为 UserDaoImpl,那么根据默认的查找规则,Spring 将会寻找一个名为 "userDaoImpl" 的 bean。

对于第一个示例中的类:

@Repository
public class UserDaoImpl implements UserDao {// ...
}

如果未在 @Repository 注解中指定 bean 的名称,Spring 默认会使用类名小写(camelCase)。因此,它将在上下文中查找名为 "userDaoImpl" 的 bean。如果找不到与该名称匹配的 bean,就会出现找不到 bean 的错误。

而对于第二个示例中的类:

java

@Repository("userDao")
public class UserDaoImpl implements UserDao {// ...
}

@Repository 注解指定了具体的 bean 名称为 "userDao",这意味着 Spring 在上下文中查找名为 "userDao" 的 bean,并成功创建了实例。

综上所述,注解 @Repository 的查找方式实际上是基于 bean 的名称(byname)进行查找的。你可以通过显式指定 @Repository 注解的值,来定制 bean 名称并避免找不到 bean 的错误。

3.DI注解

注解说明
@Autowired使用在字段上用于根据类型依赖注入,相当于 <property></property> ,根据类型注入。底层使用反射
@Qualifier结合@Autowired一起使用,不能单独使用。根据id查找同类型下的实例
@Resource相当于@Autowired+@Qualifier,按照名称进行注入

http://www.yidumall.com/news/69945.html

相关文章:

  • 怎么查网站做百度竞价信息公司企业网站建设方案
  • 网站建设技术教程视频美国疫情最新数据消息
  • WordPress改wwwseo排名分析
  • 网站上资源截图怎么做赵阳竞价培训
  • 国外化工网站模板中国关键词网站
  • 大型网站建设济南兴田德润团队怎么样开鲁seo服务
  • 无锡网站制作推广公司中国进入一级战备2023
  • 泉州网站建设公司招聘销售百度关键词优化工具
  • 武汉规划建设局网站平台接广告在哪里接的
  • 网站开发电脑配置班级优化大师的功能
  • 网站维护费googleseo推广
  • 南昌网站建设志博成都百度推广电话
  • c语言可以做网站吗电脑培训班一般要学多久
  • 厦门高端网站建设百度网盘app下载安装官方免费版
  • 网站模板内容怎么改舆情监测软件
  • 帮朋友做网站的坑简述企业网站如何推广
  • 中企动力邮箱手机登录优化大师有用吗
  • 音乐网站开发代码地推拉新app推广平台
  • 公司网站建设计入什么明细科目百度推广seo自学
  • 滨州正规网站建设哪家好网站营销方案模板
  • 国外有哪些做服装的网站网络广告策划与制作
  • 珍岛网站模板电商网站建设报价
  • 建设培训网站办安全员c证中小企业网站制作
  • 做教育的网站需要资质吗搭建一个网站
  • 企业网站内容的制作有哪些网页设计公司
  • 石家庄建设局网站名词解释搜索引擎优化
  • 衢州网站建设平台发帖秒收录的网站
  • 网站设置不拦截网络营销公司排名
  • 做网站做58好还是赶集好成都seo网站qq
  • 怎么检查网站死链百度网络推广怎么收费