您的位置:首页 > 教育 > 锐评 > 河南省建设厅电话号码_中国建设工程_谷歌浏览器下载手机版官网_seo查询爱站

河南省建设厅电话号码_中国建设工程_谷歌浏览器下载手机版官网_seo查询爱站

2024/10/6 14:37:56 来源:https://blog.csdn.net/sunguanyong/article/details/142642907  浏览:    关键词:河南省建设厅电话号码_中国建设工程_谷歌浏览器下载手机版官网_seo查询爱站
河南省建设厅电话号码_中国建设工程_谷歌浏览器下载手机版官网_seo查询爱站

在实际开发中,Service层主要负责业务模块的逻辑应用设计。在设计Service层的过程中,先设计接口,然后设计接口的实现类。通常情况下,Service层用于封装项目中一些常用的业务逻辑,这么做的好处是有利于业务逻辑的独立性和重复利用性。

7.1-Service层和@Service注解

SpringBoot的Service层是业务逻辑层,其作用是处理业务需求,封装业务方法,执行Dao层中用于访问、处理数据的操作。Service层通常由一个接口和这个接口的实现类组成。其中,Service层的接口可以在Controller层中调用,用于实现数据的传递和处理。Service层的实现必须使用@Service注解予以标注。

1,数据访问层Dao层介入Service层与数据库之间,用于访问、操作数据库中的数据。Dao层通常由Dao接口、Dao实现层和Dao工厂这3部分组成。在Dao接口中,定义了一系列用于访问、操作数据库数据的方法。在Dao的实现层,实现了Dao接口的方法。Dao工厂类的作用则是返回一个Dao实现类的对象。

2,Controller层的作用是通过调用Service层的接口,控制各个业务模块的业务流程。Controller层通过解析用户通过URL地址发送的请求,调用不同的Service层的接口处理这个请求,把处理结果返回给客户端。

在SpringBoot项目中,把被@Service注解标注的类成为服务类。@Service注解属于Component组件,可以被SpringBoot的组件扫码器扫描到,所以项目启动时,服务类的对象会自动创建,并被注册为Bean。

7.2-Service的实现

  1. 定义一个Service层的接口,在这个接口中定义用于传递和处理数据的方法。
  2. 定义一个上面创建的Service层的实现类,并使用@Service注解予以标注。这个实现类的作用有2个,一个是实现Service层的所有方法,二是在这些方法中执行Dao层的方法访问、处理数据。
  3. 项目启动Service类自动创建并被注册为Bean,在Controller层(或者其他的Component组件类中)注入这个Service Bean即可。

7.3-同时存在多个实现类的情况

7.3.1按照实现类的名称映射服务类的对象

使用@Service注解标注的Service层的实现类,这个类的对象被称作服务类的对象,这个对象会被自动的创建,并被注册成Bean,所以,Bean的名称就是实现类的名称,同时,实现类的名称要首字母大写,Bean的名称的首字母是小写的。

通俗来说,一个Service层的2个实现类,它们注入到SpringBoot容器中的Bean的名称是不一样的,所以SpringBoot毫无压力地分辨出controller要的实现类。

@Service
public class ServiceImpl implements Service{//实现接口的业务方法和用于执行访问/处理数据的代码
}@AutowiredService serviceImpl;
上面的代码等同于下面代码:@Autowired@Quqlifier("serviceImpl")Service impl; 

7.3.2按照@Service的value属性映射服务类的对象

在@Service注解中,只包含一个value属性,它是@Service注解的默认属性。

在实现类的@Service的value赋值后,相当于在创建与服务类的对象对应的Bean时确定了Bean的名称。

@Service(value="id")
@Service("id")//唯一属性,所以可以省略value=字样上述注解等同于@Bean("id")
public Service createBean(){return new ServiceImpl();
}其他组件可以通过指定Bean的名称的方式来完成service的注入。
@Autowired
Service id;

针对7.3.1和7.3.2提供的2种方法,用7.3.1的更简单和方便

7.4 不采用接口的服务类

功能太简单多写个接口实现太繁琐,直接接口和实现类合并即可,不做过多赘述。

7.5 @Service与@Repository的联系和区别

在SpringBoot中,@Repository注解可以标注任何类,被它标注过的类用于执行和数据库相关的操作,并支持自动处理在操作数据库过程中产生的异常。

同样的,@Repository与@Service都属于Component组件类。

虽然@Service注解和@Repository注解都是针对不同使用场景所采取的特定功能化的注解组件,但@Service层用于标注Service层(即业务逻辑层),@Repository注解用于标注Dao层(即数据库访问层),通过字面就能看出是业务服务还是数据库服务。

打完收工。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com