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

天津市建设网站wordpress 导航 主题

天津市建设网站,wordpress 导航 主题,传媒网站,手机网站开发ios1负责注入的注解 负责注入的注解#xff0c;常见的包括四个#xff1a; ValueAutowiredQualifierResource 1.1 Value 当属性的类型是简单类型时#xff0c;可以使用Value注解进行注入。Value注解可以出现在属性上、setter方法上、以及构造方法的形参上, 方便起见,一般直…1负责注入的注解 负责注入的注解常见的包括四个 ValueAutowiredQualifierResource 1.1 Value 当属性的类型是简单类型时可以使用Value注解进行注入。Value注解可以出现在属性上、setter方法上、以及构造方法的形参上, 方便起见,一般直接作用在属性上. package com.sunsplanter.bean;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;Component public class User {Value(value zhangsan)private String name;Value(20)private int age;Overridepublic String toString() {return User{ name name \ , age age };} /*Value和setter方法结合private String name;private int age;Value(李四)public void setName(String name) {this.name name;}Value(30)public void setAge(int age) {this.age age;} *//*Value和构造方法结合private String name;private int age;public User(Value(隔壁老王) String name, Value(33) int age) {this.name name;this.age age;} */ }配置文件开启包扫描: ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.sunsplanter.bean/ /beans测试程序: Test public void testValue(){ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);Object user applicationContext.getBean(user);System.out.println(user); }三种方法都可以正确注入简单类型. 1.2 Autowired与Qualifier Autowired注解可以用来注入非简单类型。被翻译为自动连线的或者自动装配。Autowired注解可以出现在构造方法上/方法上/形参上/属性上/注解上Autowired注解有一个required属性默认值是true表示在注入的时候要求被注入的Bean必须是存在的如果不存在则报错。如果required属性设置为false表示注入的Bean存在或者不存在都没关系存在的话就注入不存在的话也不报错。 目标: 存在两层: Service层和Dao层. 如前所述,UserService要控制UserDaoForMySQL, 必须要实例化一个UserDaoForMySQL的对象并注入到UserService类中定义的UserDaoForMySQL中. 配置Bean后Spring容器帮我们实例化了这个对象, 之前也学过了如何通过配置Bean标签注入. 本节的目标是通过注解完成自动注入. 结构为: Dao层接口UserDao: package com.dao;public interface UserDao {void insert(); }实现类UserDaoForMySQL: package com.dao;import org.springframework.stereotype.Repository;Repository //纳入bean管理 public class UserDaoForMySQL implements UserDao{Overridepublic void insert() {System.out.println(正在向mysql数据库插入User数据);} }Service层: package com.Service;import com.dao.UserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service // 纳入bean管理 public class UserService {Autowired // 在属性上注入private UserDao userDao;// 没有提供构造方法和setter方法。public void save(){userDao.insert();}/* Autowired和setter方法结合 private UserDao userDao;Autowiredpublic void setUserDao(UserDao userDao) {this.userDao userDao;}public void save(){userDao.insert();}*//*Autowired和构造方法结合private UserDao userDao;public UserService(Autowired UserDao userDao) {this.userDao userDao;}public void save(){userDao.insert();}*/ }配置文件开启包扫描: ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.dao,com.service/ /beans测试程序: Test public void testAutowired(){ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);UserService userService applicationContext.getBean(userService, UserService.class);userService.save(); }单独使用Autowired注解默认根据类型装配【byType】。但之前也提到过,如果两个相同类型的类在同一包下,则系统分辨不出自动注解哪个bean, 例如: 两个bean类都实现了UserDao接口.无法分辨 解决办法:Autowired注解和Qualifier注解联合起来才可以根据名称进行装配在Qualifier注解中指定Bean名称。 将Service层代码增加一个Qualifier注解,指定注入到userDaoForOracle: private UserDao userDao;AutowiredQualifier(userDaoForOracle) // 这个是bean的名字。public void setUserDao(UserDao userDao) {this.userDao userDao;} 1.3 Resource Resource注解也可以完成非简单类型注入, 但与AutoWired的区别如下Resource注解是JDK扩展包中的也就是说属于JDK的一部分。所以该注解是标准注解更加具有通用性。 Autowired注解是Spring框架自己的。Resource注解默认根据名称装配byName未指定name时使用属性名作为name。通过name找不到的话会自动启动通过类型byType装配。 Autowired注解默认根据类型装配byType如果想根据名称装配需要配合Qualifier注解一起用。Resource注解用在属性上、setter方法上。 Autowired注解用在属性上、setter方法上、构造方法上、构造方法参数上。Resource注解属于JDK扩展包所以不在JDK当中需要额外引入以下依赖【如果是JDK8的话不需要额外引入依赖。高于JDK11或低于JDK8需要引入以下依赖。】 Spring6不再支持JavaEE它支持的是JakartaEE9。之前所接触的所有的 javax.* 包名统一修改为 jakarta.*包名了。 若使用Spring6, 引入: dependencygroupIdjakarta.annotation/groupIdartifactIdjakarta.annotation-api/artifactIdversion2.1.1/version /dependency使用: UserDaoForOracle的名字为userDao让这个Bean的名字和UserService类中的UserDao属性名一致 package com.sunsplanter.dao;import org.springframework.stereotype.Repository;Repository(value userDaoForOracle) public class UserDaoForOracle implements UserDao{Overridepublic void insert() {System.out.println(正在向Oracle数据库插入User数据);} }package com.sunsplanter.service;import com.sunsplanter.dao.UserDao; import jakarta.annotation.Resource; import org.springframework.stereotype.Service;Service public class UserService {Resource(name userDaoForOracle)private UserDao userDao;public void save(){userDao.insert();} }测试程序: Test public void testResources(){ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);UserService userService applicationContext.getBean(userService, UserService.class);userService.save(); }以上代码使用Resource注解根据name(bean id)进行注入.Resource的的name(bean id为)userDaoForOracle,且注解写在UserDao头上.那么就去寻找一个名为userDaoForOracle的UserDao实现类进行注入. 2 全注解开发 所谓的全注解开发就是不再使用spring配置文件spring.xml了。写一个配置类来代替配置文件. 其中配置类中使用 configuration componentScan 等注解发挥spring.xml的作用 对于上例: package com.sunsplanter.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScans; import org.springframework.context.annotation.Configuration;Configuration ComponentScan({com.sunsplanter.dao, com.sunsplanter.service}) public class Spring6Configuration { }Test public void testNoXml(){ApplicationContext applicationContext new AnnotationConfigApplicationContext(Spring6Configuration.class);UserService userService applicationContext.getBean(userService, UserService.class);userService.save(); }
http://www.pierceye.com/news/390803/

相关文章:

  • 国际外贸网络交易平台网页seo搜索引擎优化
  • 做网做网站建设网站建设图片怎么切
  • 国外数码印花图案设计网站36kr wordpress
  • 上海网站建设设计公司zencart 网站入侵
  • 阜蒙县自治区建设学校网站汉中市住建局建设厅网站官网
  • windows 2008 iis怎么搭建网站手机网站模板建站
  • 优设网官网首页seo教程搜索引擎优化
  • 做问卷给钱的网站页面设计结课总结
  • 洛阳集团网站建设wordpress 深度优化
  • python做网站缺点湛江市建网站
  • 济南网站建设(选聚搜网络)在线购物网站建设
  • 珠海专业做网站公司昆明搜索引擎推广
  • 阿里云 建设网站怎么样百度推广一级代理商名单
  • 湛江网站制作网站吉林省四平市网站建设
  • 酒店网站建设公司推广方法有哪些
  • 网站建设免备案免费空间wordpress在线教育主题购买
  • 网站后台验证码不显示成都市建设工程施工安监站网站
  • 榆林网站优化做图的网站
  • 在微信中做网站淄博 网站seo优化
  • 黑龙江省建设协会网站首页怎么用word做网站
  • 企业网站网站建设价格wordpress阶梯插件
  • 企业品牌建设方案范文roseonly企业网站优化
  • 电影资源采集网站咋做在百度上怎么建立网站吗
  • 好的企业网站设计方案中小企业网站建设 论文
  • 毕设网站建设论文网站开发合同履约
  • 织梦贷款网站源码备案过的网站换域名
  • 南宁网站seo顾问广州正规的免费建站
  • 温州教育网站建设建网站 陕西牛人网络科技
  • 青岛网站建设eoe世界杯现场直播
  • com网站建设中社交app定制开发