当前位置: 首页 > 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.yutouwan.com/news/317273/

相关文章:

  • 做网站应该注意哪些方面别人给公司做的网站字体侵权吗
  • 滕州市住房城乡建设局网站遵义做网站优化
  • 专门做旅游攻略的网站有哪些上海最新新闻事件今天国内
  • 高端网站建设制作俄罗斯乌克兰战争
  • 企石东莞网站建设做网站搞什么流量
  • 网站套餐表格模板wordpress仿站步奏
  • 网站建设与管理自考本软件公司做网站
  • 一个服务器可以建几个网站如何制作个人网页主题是周末愉快
  • 深圳网站制作与建设公司上海网站公司设计
  • 开通网站软件的会计科目怎么做知识库管理系统软件
  • 服务好的南京网站建设大流量网站 优化
  • 下列关于网站开发中章丘营销型网站设计公司
  • 青岛做网站优化企业管理培训是做什么的
  • 江门网站制作套餐关键词站长工具
  • 评网网站建设网站推广阶段
  • 做会计要看什么关注什么网站centos wordpress建站
  • 长沙做网站有哪些汕头代理注册公司
  • 无为教育网站四川建设厅网站登录不上咋办
  • 网站建设推广文案烟台网站的优化
  • 汕头网站推广找哪里网站很久没被收录的新闻怎么处理
  • 申请域名后如何发布网站海南澄迈住房与建设厅网站
  • 个人做电商网站赚钱吗衡水做阿里巴巴网站
  • 网站seo提升视觉设计的特点和优势
  • 网站首页静态化代码wordpress sharethis
  • 提供网站建设定制wordpress下拉刷新
  • 如何为网站做推广二维码生成器免费
  • 如何制作私人网站应用下载app排行榜
  • 深圳前50强网站建设公司个人网站设计摘要
  • 网站建设兼容移动端搭建网站服务器平台的三种方式
  • 类似站酷的设计网站成为架构师有多难