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

南通网站开发上海网站搭建

南通网站开发,上海网站搭建,如何用微信建设网站卖东西,济南英文网站建设了解:分层架构包括:表现层(Controller层),业务逻辑层(Service层),数据访问层(Dao层) 每个层只关注特定的功能: 表现层:专注于用户界…

了解:分层架构包括:表现层(Controller层),业务逻辑层(Service层),数据访问层(Dao层)

每个层只关注特定的功能:

  • 表现层:专注于用户界面和 HTTP 处理。

此处不涉及用户端,不需要controller,直接模拟APP调用Service:

import Service.BookService;
import Service.impl.BookServiceImpl;public class APP {public static void main(String[] args) {BookService bookservice=new BookServiceImpl();bookservice.save();}
}

  • Service 层:专注于业务逻辑,不关心数据存储细节。
//接口
package Service;public interface BookService {void save();}

 

//实现类
package Service.impl;import Dao.BookDao;
import Dao.impl.BookDaoImpl;
import Service.BookService;public class BookServiceImpl implements BookService {BookDao bookdao=new BookDaoImpl();public void save(){System.out.println("book service save");bookdao.save();}
}
  • DAO 层:专注于数据访问,不关心业务规则
package Dao;public interface BookDao {void save();
}

 

package Dao.impl;import Dao.BookDao;public class BookDaoImpl implements BookDao {public void save(){System.out.println("Book  Dao  Impl.save");}
}

用户请求(Web) → Controller接收请求 → Service验证业务规则(如用户名是否存在) → DAO查询数据库 → Service调用DAO保存用户 → Controller返回响应

一.IOC入门案例

(1)要进行IOC容器管理(将创建对象的权限交给SpringBoot容器管理),需要:

1.管理什么?(Service 和Dao)

2.通过配置文件,告诉容器哪些类需要管理

3.将对象交给IOC容器管理后,如何获得IoC容器? (通过接口)

4.IoC容器获得后,如何从容器中获得Bean? (接口方法,即接口的实现类)

具体实现:已经写好基础的调用Service,Dao后:

1.pom文件导入包spring,新增一个配置文件applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>beaProject</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- 修正Spring Context依赖的groupId --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>

2.在配置文件中配置对应的bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--2编写配置文件:注意配置的是实现类不是接口通过id给他起别名,方便取的时候指定是哪一个BeanClass 表示给Bean定义类型--><bean id="bookDao1" class="Dao.impl.BookDaoImpl"></bean><bean id="Service1" class="Service.impl.BookServiceImpl"></bean></beans>

3.通过接口 获取IOC容器,4.通过容器获取bean 将需要调用的Bean的id作为参数传入

import Dao.BookDao;
import Service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App2 {public static void main(String[] args) {
//        3获取容器//需要将配置文件作为参数告诉接口ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");//        4.通过容器获取bean  将需要调用的Bean的id作为参数传入BookDao bookdao=(BookDao) ctx.getBean("bookDao1");bookdao.save();BookService bookService=(BookService)ctx.getBean("Service1");//多态写法bookService.save();}
}

二.DI入门案例

问题:上面的Service层中还是通过自己创建Dao中对象的方式,没有实现完全解耦:  BookDao bookdao=new BookDaoImpl();

解决:DI注入

1.Service中需要的Dao对象如何进入到Service中  (提供方法)

2.Service和Dao间的关系如何描述?(通过配置指明)

还是在上面IoC容器的步骤上继续修改:

5.删除业务层中使用new方式创建Dao对象的代码:

6.提供Set方法,方便传入对象

package Service.impl;import Dao.BookDao;
import Service.BookService;public class BookServiceImpl implements BookService {
//    5.删除业务层中使用new方式创建Dao对象的代码
//    BookDao bookDao=new BookDaoImpl();private BookDao bookDao;public void save(){System.out.println("book service save");bookDao.save();}//6.提供Set方法,方便传入对象public void setBookDao(BookDao bookDao){ //注意:需要使用正确的驼峰命名法,才能被正确识别set要小写,其他的开头大写this.bookDao=bookDao;}
}

7.在配置中指定Service 与Dao关系 (因为是Service中调用Dao所以在Dao中配置)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--2编写配置文件:注意配置的是实现类不是接口通过id给他起别名,方便取的时候指定是哪一个BeanClass 表示给Bean定义类型--><bean id="bookDao1" class="Dao.impl.BookDaoImpl"></bean><bean id="Service1" class="Service.impl.BookServiceImpl"><!--配置Service 与Dao关系 (因为是Service中调用Dao所以在Dao中配置)--><property name="bookDao" ref="bookDao1"/> <!--注意区分:name中指定的是Service中的属性,而ref中指定的是Bean的id名--></bean></beans>

http://www.dtcms.com/a/613932.html

相关文章:

  • oracle 物化视图设置自动更新日志
  • Java测试题
  • YOLO v11的学习记录(五) 使用自定义数据从头训练一个实例分割的模型
  • 大模型Agent工作流设计模式深度解析:从ReAct到ReWOO的实践演进
  • redis的配置windows
  • 漯河英文网站建设秦皇岛陵县网站建设
  • HTML5+CSS3+JS小实例:螺旋鼠标轨迹
  • 长沙市云网站建设大型电商网站开发方案
  • 从一到无穷大 #57:Snowflake的剪枝方案
  • 网页网站的区别是什么最适合seo的wordpress主题
  • 深入理解 OverlayFS:用分层的方式重新组织 Linux 文件系统
  • 定制型网站制作公司织梦图片自适应网站源码
  • 解决mac端pycharm执行allure命令报错:returned non-zero exit status 127
  • 公司官网制作报价青岛关键词优化平台
  • ModelScope微调模型
  • Ollama本地电脑运行无限制AI模型超简单案例
  • 银川网站建设那家好品牌整合营销方案
  • 南京手机网站制作公司手机做图纸app下载网站
  • 学习笔记九:线性判别分析
  • RHCE的SSH配置文件及实验
  • 网站开发基础知识公众号里链接的网站怎么做的
  • 人工智能之数据分析 numpy:第四章 数组属性和数据类型
  • 网站建设所需美工app界面设计的软件
  • 营口网站建设开发制作家装公司加盟哪个公司好
  • openwrt源码编译环境搭建-安装Luci
  • synchronized全解析:从锁升级到性能优化,彻底掌握Java内置锁
  • FPGA工程师12实战项目-基于PCIe的高速ADC采集项目
  • Linux驱动开发实战指南-中
  • 网站的开发环境是什么个人制作个网站
  • 减速机在不同工况下如何安装才更稳?