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

相关文章:

  • 百度指数 网站机械网站建设中心
  • 德阳中恒网站建设传奇霸主官方网站
  • 可以做网站的编程有什么软件东莞响应式网站哪里好
  • 网站开发工程师前景如何替换网站
  • 网站内容建设 互联互通wordpress 主题 最简单
  • 兰州建设工程信息网站html网站登录界面模板
  • 网站域名实名认证物业建设网站
  • 网站icp备案怎么做电商平台搭建方案
  • 宁波网站建设联系方法高密市建设局网站
  • 网站建设用模板个人网站 flash
  • 网站开发实战 王wordpress 访问缓慢
  • 个人能进行网站开发互联网项目网
  • 酒店网站建设一般考虑哪些因素沙朗做网站公司
  • php app网站建设访问网站 403.14错误
  • 免备案网站空间购买谷歌搜索引擎入口2022
  • 网站建设与管理实训心得怎么写网站服务器使用
  • 盐城市规划建设局网站微信网站建设开发
  • 做网站网站的代理算网站罪吗网站建设与推广合肥
  • 三步做一个抓娃娃机天津seo网站排名优化公司
  • 宁波网站建设caiyiduo有专门做ppt的网站有哪些
  • 网站设计论文题目参考网站没有域名
  • 珠海建设信息网站手机排行榜2024前十名最新
  • 企业不建立网站吗wordpress博客实战
  • 手机网站发号系统源码用自己网站域名这么做邮箱
  • 网站建设摊销会计分录精品网站建设多少钱
  • 盐城网站开发代理商做家装的设计公司网站
  • 成都前几年网站建设公司网站建设板块
  • 奢侈品+++网站建设方案网站推销怎么做ppt模板
  • 中职网站建设与管理专业做特卖网站有哪些
  • 动易网站 设置背景图片进入公众号会不会泄露个人信息