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

公司网站有收录没排名网站建设费能抵扣吗

公司网站有收录没排名,网站建设费能抵扣吗,家用电脑做网站服务器,亚泰润德建设有限公司网站文章开始之前#xff0c;先引入软件开发的两个名词#xff1a;耦合和内聚。耦合是指#xff1a;衡量软件中各个层#xff08;三层架构#xff09;/各个模块的依赖关联程度#xff1b;内聚是指#xff1a;软件中各个功能模块内部的功能联系。三层架构中Controller、Servi…         文章开始之前先引入软件开发的两个名词耦合和内聚。耦合是指衡量软件中各个层三层架构/各个模块的依赖关联程度内聚是指软件中各个功能模块内部的功能联系。三层架构中Controller、Service、Dao是相互依赖关联的是耦合的并且在各层级中直接使用new创建的依赖的对象假如依赖的对象发生了变化就必须去修改源代码这是我们不愿意看到的。三层架构的每一层内部的功能都是独立的都只处理自身的业务逻辑其他业务逻辑不会定义在该类中所以说类聚程度很高。软件开发就是需要“高内聚低耦合”。 三层架构解耦的思路 需要依赖其他层完成业务时在声明对象的时候不要直接new对象需要使用一个容器将需要使用的对象存储起来当需要使用该对象时直接在容器中获得即可避免用new实例化对象从而解除耦合。那么如何实现这个操作呢Spring提供了两个思想方法控制反转依赖注入。 控制反转、依赖注入、Bean对象 控制反转 控制反转Inversion Of Control简称IOC。其主要思想是对象的创建控制权由程序自身new对象转移到外部容器这个容器也可以称为IOC容器或者Spring容器一般不用这个名字。 依赖注入 依赖注入Dependency Injection简称DI。其主要思想是IOC容器为应用程序提供运行时所依赖的资源需要使用的实体类。 Bean对象 Bean对象是IOC容器中创建和管理的对象。 具体实现 因为Controller层依赖了Service层、Service层依赖了Dao层所以说我们要将Dao及Service层的实现类交给IOC容器管理并且为Controller及Service层注入运行时所依赖的对象DI。Spring框架提供了两个注解实现IOC和DI分别是Component将该类交给IOC容器管理这个注解一般使用在实现类上面AutoWired从IOC容器中自动寻找依赖的类并注入使用在类的声明上。 Controller层 没有哪一层需要依赖Controller层所以说Controller不需要交给IOC容器管理但是Controller层依赖了Service层所以说在声明Service对象的时候要在声明上添加AutoWired注解表示从IOC容器中进行依赖注入 package com.wzb.controller;import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONUtil; import com.wzb.pojo.User; import com.wzb.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RestController public class UserController {Autowiredprivate UserService userService;// 获取用户数据的代码不能写在此处类的成员变量初始化是在类的实例化阶段进行的此时可能AutoWired注入还未完成导致Null// private final ListUser userList userService.findUser();RequestMapping(/list)public String list() {ListUser userList userService.findUser();return JSONUtil.toJsonStr(userList, JSONConfig.create().setDateFormat(yyyy-MM-dd HH:mm:ss));}}特别提醒在不使用IOC容器的时候可以将获取数据当作成员变量书写因为事先已经完成了UserService的初始化不会为null但是使用之后获取数据必须在方法中定义因为类的成员变量初始化是在类的实例化阶段进行的此时可能AutoWired注入还未完成导致Null。 Service层 Service层作为Controller层的依赖所以说在类名上必须加上Component注解代表将该类交给IOC容器管理Service层还依赖了Dao层所以说在声明的时候需要使用AutoWired注解 package com.wzb.service.impl; import com.wzb.dao.UserDao; import com.wzb.pojo.User; import com.wzb.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.stream.Collectors;/*** Service层实现类**/ Component public class UserServiceImpl implements UserService {Autowiredprivate UserDao userDao;// 获取用户数据的代码不能写在此处类的成员变量初始化是在类的实例化阶段进行的此时可能AutoWired注入还未完成导致Null// private final ListString lines userDao.findUser();public ListUser findUser() {ListString lines userDao.findUser();ListUser userList lines.stream().map(line - {String[] parts line.split(,);Integer id Integer.parseInt(parts[0]);String username parts[1];String password parts[2];String name parts[3];Integer age Integer.parseInt(parts[4]);LocalDateTime updateTime LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss));return new User(id, username, password, name, age, updateTime);}).collect(Collectors.toList());return userList;} }Dao层 Dao层不需要依赖其他层但是Service依赖了Dao层所以说只需要在类名上添加Component注解即可 package com.wzb.dao.impl;import cn.hutool.core.io.IoUtil; import com.wzb.dao.UserDao; import org.springframework.stereotype.Component;import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List;/*** Dao层的实现类**/ Component public class UserDaoImpl implements UserDao {Overridepublic ListString findUser() {InputStream in this.getClass().getClassLoader().getResourceAsStream(user.txt);return IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList());} }通过Spring框架提供的IOC和DI简单的实现了分层解耦降低了模块之间的耦合度但是也并不是大量使用IOC和DI就是完美的这其实破坏类的不可变属性字段注入使得类的依赖对象可以在类实例化后被外部Spring 容器随意修改。所以说使用还是要合理。
http://www.hkea.cn/news/14522015/

相关文章:

  • 免费建设论坛网站海外网络推广效果
  • wordpress建立商业网站的品质网站建设
  • 做网站有什么书亚马逊雨林地图
  • 网站开发+搜索宁夏网站建设电话
  • 进一步加强网站建设怎么搭建自己的网站挣钱
  • 宁夏网站建设网站建设意思
  • 无忧网站建设公司网上商城小程序源码
  • 哪些网站可以免费做推广页面模板参数错误
  • 潍坊站总站人工服务电话景区网站建设策划书
  • 网站文章更新频率网页设计最牛的网站建设
  • 老网站文章突然无收录佛山免费网站建站模板
  • 海口模板建站平台品牌建设的主要内容
  • 衡水网站建设联系电话asp做的是系统还是网站
  • 品牌网站建设解决ui设计已经不火了
  • 做地方网站数据哪里来网站建设:化工
  • 苏州住房建设局网站简单的个人网页制作
  • 有没有专业做二维码连接网站在商标注册的官方网
  • 如何做网站对话框国际贸易网站建设 中企动力湖北
  • 杭州网站建设市场网页设计入门知识
  • 如何做flash游戏下载网站校园门户网站系统建设
  • 网站建设营销解决方案wordpress进不去
  • 品牌建设网站规划安家堡网站建设
  • 海南建设银行官方网站智慧门店管理服务平台
  • 大连博硕网站建设做舞美的好素材网站j
  • 怎样仿制网站做网站用win2008系统
  • 做企业网站联系上海网页制作费用
  • wordpress弹框登陆百度seo快速提升排名
  • 淄博学校网站建设定制初中学校网站如何做
  • 网站项目报价单昆山室内设计学校
  • 重庆平台网站建设费用网页设计作业源码