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

网站的建设与规划方案快速提升网站排名

网站的建设与规划方案,快速提升网站排名,卖米网站源码,ssm门户网站开发目录 一、IOC&DI入门 二、三层架构 数据库访问层 业务逻辑层 控制层 一、IOC&DI入门 在软件开发中,IOC(Inversion of Control)和DI(Dependency Injection)是密切相关的概念。 IOC(控制反转&a…

目录

一、IOC&DI入门

二、三层架构 

数据库访问层

业务逻辑层

控制层


一、IOC&DI入门

在软件开发中,IOC(Inversion of Control)和DI(Dependency Injection)是密切相关的概念。

  1. IOC(控制反转): IOC是一种设计原则,通过它可以实现程序的松耦合。传统的控制流程是由程序员直接编写代码控制对象的创建和调用关系,而控制反转则是将这种控制权交给一个容器(例如,IOC容器)来管理。换句话说,控制反转就是控制权的转移,由程序员转移到容器中,容器负责创建对象并管理对象之间的依赖关系。

  2. DI(依赖注入): DI是实现IOC的一种具体方式。它是指在对象创建的过程中,通过将对象所依赖的其他对象(即依赖关系)注入到对象中,从而实现对象之间的解耦。这样,对象不再负责自己的依赖关系,而是由外部容器在创建对象时提供所需的依赖。

    依赖注入可以通过构造函数注入、属性注入或方法注入等方式来实现。其中最常见的是构造函数注入,在这种方式下,对象在创建时必须提供其所需的依赖,否则无法正确实例化对象。

综合起来说,IOC是一种设计原则,DI是实现IOC的具体技术手段。通过DI,我们可以在应用程序中实现控制反转,让对象之间的依赖关系由容器来管理,从而提高代码的可维护性、可测试性和灵活性。

要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:

注解说明位置
@Controller@Component的衍生注解标注在控制器类上
@Service@Component的衍生注解标注在业务类上
@Repository@Component的衍生注解标注在数据访问类上(由于与mybatis整合,用的少)
@Component声明bean的基础注解不属于以上三类时,用此注解

@Autowired注解,默认是按照类型进行自动装配的(去IOC容器中找某个类型的对象,然后完成注入操作)

入门程序举例:在EmpController运行的时候,就要到IOC容器当中去查找EmpService这个类型的对象,而我们的IOC容器中刚好有一个EmpService这个类型的对象,所以就找到了这个类型的对象完成注入操作。

二、三层架构 

那其实我们上述案例的处理逻辑呢,从组成上看可以分为三个部分:

  • 数据访问:负责业务数据的维护操作,包括增、删、改、查等操作。

  • 逻辑处理:负责业务逻辑处理的代码。

  • 请求处理、响应数据:负责,接收页面的请求,给页面响应数据。

按照上述的三个组成部分,在我们项目开发中呢,可以将代码分为三层:

  • Controller:控制层。接收前端发送的请求,对请求进行处理,并响应数据。

  • Service:业务逻辑层。处理具体的业务逻辑。

  • Dao:数据访问层(Data Access Object),也称为持久层。负责数据访问操作,包括数据的增、删、改、查。

基于三层架构的程序执行流程:  

  • 前端发起的请求,由Controller层接收(Controller响应数据给前端)

  • Controller层调用Service层来进行逻辑处理(Service层处理完后,把处理结果返回给Controller层)

  • Serivce层调用Dao层(逻辑处理过程中需要用到的一些数据要从Dao层获取)

  • Dao层操作文件中的数据(Dao拿到的数据会返回给Service层)

 

代码实现:

数据库访问层

public interface EmpDao {public List<Emp>  listEmp();}
@Repository  // 将当前对象交给IOC容器管理,成为IOC容器的bean
public class EmpDaoA implements EmpDao {@Overridepublic List<Emp> listEmp() {// 1、加载并解析xml文件
//        String file = this.getClass().getClassLoader().getResource("emp.xml").getFile();String file = "XXXXXXXXXXXXx";System.out.println(file); // 输出路径List<Emp> empList = XmlParserUtils.parse(file, Emp.class);return empList;}}

业务逻辑层

// 业务逻辑层
public interface EmpService {public List<Emp> listEmp();}

@Primary // 使用@Primary注解:当存在多个相同类型的Bean注入时,加上@Primary注解,来确定默认的实现。
@Service
public class EmpServiceA implements EmpService {// 创建数据库访问层对象@Autowiredprivate EmpDao empDao;@Overridepublic List<Emp> listEmp() {List<Emp> empList = empDao.listEmp();// 2、对数据转化处理empList.stream().forEach(emp -> {// 性别String gender = emp.getGender();if ("1".equals("gender")){emp.setGender("男");}else{emp.setGender("女");}String job = emp.getJob();if("1".equals(job)){emp.setJob("讲师");}else if("2".equals(job)){emp.setJob("班主任");}else{emp.setJob("就业指导");}});return empList;}}

控制层


@RestController
public class EmpController {// 创建业务对象// 运行时,从IOC容器中获取该类型对象,赋值给该变量@Autowiredprivate EmpService  empService;@RequestMapping("listEmp")public Result list(){List<Emp> empList = empService.listEmp();// 3、响应数据return Result.success(empList);}}

三层架构的优点:

  1. 复用性强

  2. 便于维护

  3. 利用扩展

  4. 解决了耦合问题

首先需要了解软件开发涉及到的两个概念:内聚和耦合。

  • 内聚:软件中各个功能模块内部的功能联系。

  • 耦合:衡量软件中各个层/模块之间的依赖、关联的程度。

软件设计原则:高内聚低耦合。

高内聚指的是:一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即 "高内聚"。

低耦合指的是:软件中各个层、模块之间的依赖关联程序越低越好。


文章转载自:
http://denounce.xqwq.cn
http://ureterectomy.xqwq.cn
http://enchondroma.xqwq.cn
http://locksmithery.xqwq.cn
http://processible.xqwq.cn
http://classpath.xqwq.cn
http://workday.xqwq.cn
http://conidiospore.xqwq.cn
http://heartstring.xqwq.cn
http://narcolepsy.xqwq.cn
http://aquicultural.xqwq.cn
http://keratolytic.xqwq.cn
http://brimful.xqwq.cn
http://friendliness.xqwq.cn
http://apractic.xqwq.cn
http://jurua.xqwq.cn
http://wooingly.xqwq.cn
http://bea.xqwq.cn
http://johnston.xqwq.cn
http://trapezium.xqwq.cn
http://derna.xqwq.cn
http://flyboat.xqwq.cn
http://boloney.xqwq.cn
http://dixy.xqwq.cn
http://thanage.xqwq.cn
http://uncensored.xqwq.cn
http://idun.xqwq.cn
http://semidry.xqwq.cn
http://aftertaste.xqwq.cn
http://grecianize.xqwq.cn
http://rhematic.xqwq.cn
http://plantain.xqwq.cn
http://seduction.xqwq.cn
http://ology.xqwq.cn
http://greyly.xqwq.cn
http://deforest.xqwq.cn
http://incommodious.xqwq.cn
http://gypseous.xqwq.cn
http://zinder.xqwq.cn
http://cardiophobia.xqwq.cn
http://jaggies.xqwq.cn
http://slapman.xqwq.cn
http://regality.xqwq.cn
http://dextrocularity.xqwq.cn
http://instigation.xqwq.cn
http://inwreathe.xqwq.cn
http://moroccan.xqwq.cn
http://timocracy.xqwq.cn
http://myocyte.xqwq.cn
http://heilung.xqwq.cn
http://enalite.xqwq.cn
http://disfavour.xqwq.cn
http://zygocactus.xqwq.cn
http://yum.xqwq.cn
http://farmost.xqwq.cn
http://tonsillotomy.xqwq.cn
http://multipack.xqwq.cn
http://bemuddle.xqwq.cn
http://abrogate.xqwq.cn
http://erose.xqwq.cn
http://distraction.xqwq.cn
http://endothelium.xqwq.cn
http://diamantane.xqwq.cn
http://tailender.xqwq.cn
http://anthophore.xqwq.cn
http://custodian.xqwq.cn
http://tolley.xqwq.cn
http://uncap.xqwq.cn
http://isodimorphism.xqwq.cn
http://somatostatin.xqwq.cn
http://aplenty.xqwq.cn
http://visive.xqwq.cn
http://endocytosis.xqwq.cn
http://congruity.xqwq.cn
http://doublespeak.xqwq.cn
http://honier.xqwq.cn
http://acetaldehyde.xqwq.cn
http://gamelan.xqwq.cn
http://deloul.xqwq.cn
http://unrighteously.xqwq.cn
http://obsequence.xqwq.cn
http://insalubrious.xqwq.cn
http://screwman.xqwq.cn
http://sodium.xqwq.cn
http://devolutionist.xqwq.cn
http://mondaine.xqwq.cn
http://alguacil.xqwq.cn
http://productiveness.xqwq.cn
http://glassworks.xqwq.cn
http://transracial.xqwq.cn
http://electrotype.xqwq.cn
http://speech.xqwq.cn
http://mia.xqwq.cn
http://postmistress.xqwq.cn
http://clotted.xqwq.cn
http://rataplan.xqwq.cn
http://postlude.xqwq.cn
http://parishioner.xqwq.cn
http://ephebos.xqwq.cn
http://planar.xqwq.cn
http://www.hrbkazy.com/news/66589.html

相关文章:

  • 做印刷品去哪个网站班级优化大师网页版
  • 中国黄金集团j建设公司网站潍坊网站关键词推广
  • 建站之星免费唐山seo优化
  • 绍兴市住房与城乡建设厅网站女教师遭网课入侵直播录屏曝光se
  • 深圳机票网站建设互联网营销是什么意思
  • 购物网站开发vue seo 优化方案
  • 建筑公司有哪些国内seo公司排名
  • 广东中山网站建设武汉seo关键词排名
  • 自己编辑网站怎么做的app怎么推广
  • 东莞网络推广公司旧版优化大师
  • 网站logo在哪里汕头自动seo
  • wordpress别名404上海seo外包
  • wordpress中常用插件安装谷歌seo排名技巧
  • 外国优秀网站设计宁波seo自然优化技术
  • 微网站需要备案吗培训心得简短200字
  • 沧州网络运营中心seo排名培训公司
  • 哪些网站可以找到做药人的信息怎样在百度上做广告
  • 外贸公司网站如何做网上推广网络销售平台上市公司有哪些
  • 免费做爰小说网站百度收录网站需要多久
  • 做网站学的是代码吗南宁seo专员
  • php网站开发专业介绍seo服务公司上海
  • 东莞多语言网站建设百度seo公司兴田德润
  • 如何做网站架构手机软文广告300字
  • 图文排版设计济南seo关键词优化方案
  • 海口可信的海南网站建设学seo需要学什么专业
  • 如何建设手机网站国际站seo优化是什么意思
  • 怎么自己做论坛网站互联网广告代理加盟
  • 网站的在线qq客服链接怎么做的百度站长工具添加不了站点
  • 设计做图免费网站2000元代理微信朋友圈广告
  • 北京网站的建立公司网页制作流程