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

苏州网站建设制作方案百度搜索引擎关键词

苏州网站建设制作方案,百度搜索引擎关键词,河南中原建设公司网站,外贸建站系统源码3.3.2 IOC详解 通过IOC和DI的入门程序呢#xff0c;我们已经基本了解了IOC和DI的基础操作。接下来呢#xff0c;我们学习下IOC控制反转和DI依赖注入的细节。 3.3.2.1 bean的声明 前面我们提到IOC控制反转#xff0c;就是将对象的控制权交给Spring的IOC容器#xff0c;由… 3.3.2 IOC详解 通过IOC和DI的入门程序呢我们已经基本了解了IOC和DI的基础操作。接下来呢我们学习下IOC控制反转和DI依赖注入的细节。 3.3.2.1 bean的声明 前面我们提到IOC控制反转就是将对象的控制权交给Spring的IOC容器由IOC容器创建及管理对象。IOC容器创建的对象称为bean对象。 在之前的入门案例中要把某个对象交给IOC容器管理需要在类上添加一个注解Component 而Spring框架为了更好的标识web应用程序开发当中bean对象到底归属于哪一层又提供了Component的衍生注解 Controller 标注在控制层类上 Service 标注在业务层类上 Repository 标注在数据访问层类上 修改入门案例代码 Controller层 RestController  //RestController Controller ResponseBody public class EmpController { ​Autowired //运行时,从IOC容器中获取该类型对象,赋值给该变量private EmpService empService ; ​RequestMapping(/listEmp)public Result list(){//1. 调用service, 获取数据ListEmp empList empService.listEmp(); ​//3. 响应数据return Result.success(empList);} } Service层 Service public class EmpServiceA implements EmpService { ​Autowired //运行时,从IOC容器中获取该类型对象,赋值给该变量private EmpDao empDao ; ​Overridepublic ListEmp listEmp() {//1. 调用dao, 获取数据ListEmp empList empDao.listEmp(); ​//2. 对数据进行转换处理 - gender, jobempList.stream().forEach(emp - {//处理 gender 1: 男, 2: 女String gender emp.getGender();if(1.equals(gender)){emp.setGender(男);}else if(2.equals(gender)){emp.setGender(女);} ​//处理job - 1: 讲师, 2: 班主任 , 3: 就业指导String job emp.getJob();if(1.equals(job)){emp.setJob(讲师);}else if(2.equals(job)){emp.setJob(班主任);}else if(3.equals(job)){emp.setJob(就业指导);}});return empList;} } Dao层 Repository public class EmpDaoA implements EmpDao {Overridepublic ListEmp listEmp() {//1. 加载并解析emp.xmlString file this.getClass().getClassLoader().getResource(emp.xml).getFile();System.out.println(file);ListEmp empList XmlParserUtils.parse(file, Emp.class);return empList;} } 要把某个对象交给IOC容器管理需要在对应的类上加上如下注解之一 注解说明位置ControllerComponent的衍生注解标注在控制器类上ServiceComponent的衍生注解标注在业务类上RepositoryComponent的衍生注解标注在数据访问类上由于与mybatis整合用的少Component声明bean的基础注解不属于以上三类时用此注解 查看源码 在IOC容器中每一个Bean都有一个属于自己的名字可以通过注解的value属性指定bean的名字。如果没有指定默认为类名首字母小写。 注意事项: 声明bean的时候可以通过value属性指定bean的名字如果没有指定默认为类名首字母小写。 使用以上四个注解都可以声明bean但是在springboot集成web开发中声明控制器bean只能用Controller。 3.3.2.2 组件扫描 问题使用前面学习的四个注解声明的bean一定会生效吗 答案不一定。原因bean想要生效还需要被组件扫描 下面我们通过修改项目工程的目录结构来测试bean对象是否生效 运行程序后报错 为什么没有找到bean对象呢 使用四大注解声明的bean要想生效还需要被组件扫描注解ComponentScan扫描 ComponentScan注解虽然没有显式配置但是实际上已经包含在了引导类声明注解 SpringBootApplication 中默认扫描的范围是SpringBoot启动类所在包及其子包。 解决方案手动添加ComponentScan注解指定要扫描的包 仅做了解不推荐 推荐做法如下图 将我们定义的controllerservicedao这些包呢都放在引导类所在包com.itheima的子包下这样我们定义的bean就会被自动的扫描到 3.3.3 DI详解 上一小节我们讲解了控制反转IOC的细节接下来呢我们学习依赖注解DI的细节。 依赖注入是指IOC容器要为应用程序去提供运行时所依赖的资源而资源指的就是对象。 在入门程序案例中我们使用了Autowired这个注解完成了依赖注入的操作而这个Autowired翻译过来叫自动装配。 Autowired注解默认是按照类型进行自动装配的去IOC容器中找某个类型的对象然后完成注入操作 入门程序举例在EmpController运行的时候就要到IOC容器当中去查找EmpService这个类型的对象而我们的IOC容器中刚好有一个EmpService这个类型的对象所以就找到了这个类型的对象完成注入操作。 那如果在IOC容器中存在多个相同类型的bean对象会出现什么情况呢 程序运行会报错 如何解决上述问题呢Spring提供了以下几种解决方案 Primary Qualifier Resource 使用Primary注解当存在多个相同类型的Bean注入时加上Primary注解来确定默认的实现。 使用Qualifier注解指定当前要注入的bean对象。 在Qualifier的value属性中指定注入的bean的名称。 Qualifier注解不能单独使用必须配合Autowired使用 使用Resource注解是按照bean的名称进行注入。通过name属性指定要注入的bean的名称。 面试题 Autowird 与 Resource的区别 Autowired 是spring框架提供的注解而Resource是JDK提供的注解 Autowired 默认是按照类型注入而Resource是按照名称注入
http://www.huolong8.cn/news/317273/

相关文章:

  • 宁夏网站seo工程造价信息网站
  • 商贸网站建设做网站推广选择什么最好
  • 建网站方案安装wordpress linux
  • 哪里有手机网站制作公司建设银行梅州分行网站
  • 网站建设推广咨询平台工厂做网站
  • 不用写代码做网站国内网站推广
  • 查看网站开发平台企业标准查询网官网
  • 百度云资源搜索网站泉州(晋江)网站建设
  • linux 配置网站域名深圳罗湖企业网站
  • 网站虚拟主机博客和网站的区别
  • 个人备案网站可以做商城展示网站制作公司怎么收费
  • 网站开发人才需求wordpress自定义小工具
  • 导航特效网站wordpress顶部菜单设置
  • 衡水城乡建设局网站首页放置文件
  • 郑州网站建设怎样搜索框html代码
  • 百度做的网站后台怎么更新网站建设改版目的
  • 世界杯网站开发网站网站怎么做的
  • 人是用什么做的视频网站惠州软件开发公司
  • 搜狗站长工具平台怎么知道网站开发语言
  • 全球最受欢迎的网站排名中铁建设集团有限公司梅洪亮
  • 黄金网站app下载免费手表网站错误怎么办
  • 东莞网站建设排名怎么做那些盗号网站
  • 网站tag聚合怎么做软件制作过程
  • 合山市网站视频软件下载app
  • 制作网站图片不显示网页游戏设计培训学校
  • 京东网站开发框架做携程网站的技术
  • 视频网站 做综艺 电视台做图片可以卖给那些网站
  • 网站案例演示做爰全过程免费网站的视频教程
  • 网站 谁建设谁负责外贸阿里巴巴国际站
  • 潍坊网站开发网站建设选择数据库