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

网站排名优化有哪些牛霸天的软件1中央广播电视总台

网站排名优化有哪些牛霸天的软件1,中央广播电视总台,媒体发稿平台,建设汽车行业网站一、介绍从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过注解在不改变原有代码和逻辑的情况下&#x…

一、介绍

从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过注解在不改变原有代码和逻辑的情况下,在源代码中嵌入补充信息。
Spring 从 2.5 版本开始提供了对注解技术的全面支持,我们可以使用注解来实现自动装配,简化 Spring 的 XML 配置。
Spring 通过注解实现自动装配的步骤如下:
引入依赖
开启组件扫描
使用注解定义 Bean
依赖注入

二、子模块spring6-ioc-annotation

**①搭建模块**搭建方式如:spring6-ioc-xml**②引入配置文件**引入spring-ioc-xml模块日志log4j2.xml**③添加依赖**```xml
<dependencies><!--spring context依赖--><!--当你引入Spring Context依赖之后,表示将Spring的基础依赖引入了--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.3</version></dependency><!--junit5测试--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId></dependency><!--log4j2的依赖--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.19.0</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j2-impl</artifactId><version>2.19.0</version></dependency>
</dependencies>
```

三、开启组件扫描

Spring 默认不使用注解装配 Bean,因此我们需要在 Spring 的 XML 配置中,通过 context:component-scan 元素开启 Spring Beans的自动扫描功能。开启此功能后,Spring 会自动从扫描指定的包(base-package 属性设置)及其子包下的所有类,如果类上使用了 @Component 注解,就将该类装配到容器中。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--开启组件扫描功能--><context:component-scan base-package="com.wsy"></context:component-scan>
</beans
**情况一:最基本的扫描方式**```xml
<context:component-scan base-package="com.wsy">
</context:component-scan>
```**情况二:指定要排除的组件**```xml
<context:component-scan base-package="com.atguigu.spring6"><!-- context:exclude-filter标签:指定排除规则 --><!-- type:设置排除或包含的依据type="annotation",根据注解排除,expression中设置要排除的注解的全类名type="assignable",根据类型排除,expression中设置要排除的类型的全类名--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/><!--<context:exclude-filter type="assignable" expression="com.wsy.controller.UserController"/>-->
</context:component-scan>
```**情况三:仅扫描指定组件**```xml
<context:component-scan base-package="com.atguigu" use-default-filters="false"><!-- context:include-filter标签:指定在原有扫描规则的基础上追加的规则 --><!-- use-default-filters属性:取值false表示关闭默认扫描规则 --><!-- 此时必须设置use-default-filters="false",因为默认规则即扫描指定包下所有类 --><!-- type:设置排除或包含的依据type="annotation",根据注解排除,expression中设置要排除的注解的全类名type="assignable",根据类型排除,expression中设置要排除的类型的全类名--><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/><!--<context:include-filter type="assignable" expression="com.wsy.controller.UserController"/>-->
</context:component-scan>
```

四、使用注解定义 Bean

Spring 提供了以下多个注解,这些注解可以直接标注在 Java 类上,将它们定义成 Spring Bean。

注解

说明

@Component

该注解用于描述 Spring 中的 Bean,它是一个泛化的概念,仅仅表示容器中的一个组件(Bean),并且可以作用在应用的任何层次,例如 Service 层、Dao 层等。 使用时只需将该注解标注在相应类上即可。

@Repository

该注解用于将数据访问层(Dao 层)的类标识为 Spring 中的 Bean,其功能与 @Component 相同。

@Service

该注解通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。

@Controller

该注解通常作用在控制层(如SpringMVC 的 Controller),用于将控制层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。

4.1实验一:@Autowired注入

①场景一:属性注入

创建UserDao接口


​
publicinterfaceUserDao {
​publicvoidprint();
}

创建UserDaoImpl实现

importorg.springframework.stereotype.Repository;
​
@Repository
publicclassUserDaoImplimplementsUserDao {
​@Overridepublicvoidprint() {System.out.println("Dao层执行结束");}
}

创建UserService接口

packagecom.atguigu.spring6.service;
​
publicinterfaceUserService {
​publicvoidout();
}

创建UserServiceImpl实现类

importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
​
@Service
publicclassUserServiceImplimplementsUserService {
​@AutowiredprivateUserDaouserDao;
​@Overridepublicvoidout() {userDao.print();System.out.println("Service层执行结束");}
}

创建UserController类


importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
​
@Controller
publicclassUserController {
​@AutowiredprivateUserServiceuserService;
​publicvoidout() {userService.out();System.out.println("Controller层执行结束。");}
​
}

测试一

    @Testpublic void testAutowired(){ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");UserController userController = ac.getBean("userController",UserController.class);userController.addController();}

测试结果:

②场景二:set注入
 @Autowiredprivate UserService userService;

改造

 private UserService userService;@Autowiredpublic void setUserService(UserService userService) {this.userService = userService;}
③场景三:构造方法注入
 private UserService userService;@Autowiredpublic UserController(UserService userService) {this.userService = userService;}
④场景四:形参上注入
 public UserController(@Autowired UserService userService) {this.userService = userService;}
⑤场景五:只有一个构造函数,无注解
    private UserDao userDao;public UserServiceImpl(UserDao userDao) {this.userDao = userDao;}
⑥场景六:@Autowired注解和@Qualifier注解联合
多个实现类,使用@qualifier进行注入
@Autowired
@Qualifier("userDaoImpl") // 指定bean的名字
private UserDao userDao;

4.2实验二:@Resource注入

@Resource注解也可以完成属性注入。那它和@Autowired注解有什么区别?

  • @Resource注解是JDK扩展包中的,也就是说属于JDK的一部分。所以该注解是标准注解,更加具有通用性。(JSR-250标准中制定的注解类型。JSR是Java规范提案。)

  • @Autowired注解是Spring框架自己的。

  • @Resource注解默认根据名称装配byName,未指定name时,使用属性名作为name。通过name找不到的话会自动启动通过类型byType装配。

  • @Autowired注解默认根据类型装配byType,如果想根据名称装配,需要配合@Qualifier注解一起用。

  • @Resource注解用在属性上、setter方法上。

  • @Autowired注解用在属性上、setter方法上、构造方法上、构造方法参数上。

@Resource注解属于JDK扩展包,所以不在JDK当中,需要额外引入以下依赖:【如果是JDK8的话不需要额外引入依赖。高于JDK11或低于JDK8需要引入以下依赖。

<dependency><groupId>jakarta.annotation</groupId><artifactId>jakarta.annotation-api</artifactId><version>2.1.1</version>
</dependency>
@Resource注解:默认byName注入,没有指定name时把属性名当做name,根据name找不到时,才会byType注入。byType注入时,某种类型的Bean只能有一个

http://www.hrbkazy.com/news/515.html

相关文章:

  • 怎样做网站的反链百度竞价包年推广公司
  • phpwind做的网站关键词大全
  • 大网络公司做网站视频营销模式有哪些
  • WordPress做漫画网站推广方法
  • 网站 css结构网络舆情监测专业
  • wordpress. 说说样式合肥全网优化
  • 自己建网站做代理商汕头seo按天付费
  • 网上做预算的网站广告公司网站
  • 网站软文标题上海有什么seo公司
  • 八步网站建设百度搜索引擎优化
  • 电子商务等于做网站吗软文网站推广
  • 男女做暧暧试看网站49网络推广电话
  • wordpress网站费用宁波seo网络推广产品服务
  • 电商网站怎么制作推广平台
  • 一级a做爰视频安全网站购买域名后如何建立网站
  • 建站宝盒全能版靠谱的推广平台有哪些
  • wordpress站下所有标签搜索引擎排名影响因素有哪些
  • 高端网站设计供应商南通seo网站优化软件
  • 北京网络开发公司seo百度关键词优化
  • 公司做网站价格长沙网站设计
  • 龙华住房和建设局网站seo企业培训班
  • 广州安全教育平台打卡引热议长春关键词优化平台
  • 网站服务提供商windows优化大师收费吗
  • 网站做404是什么意思百度软件下载安装
  • 重庆网站设计人员长尾关键词举例
  • 未来做哪些网站能致富江西百度推广开户多少钱
  • 推广普通话活动总结seo网站地图
  • 网站设计与网页制作培训友情链接有什么用
  • 杭州怎样建设网站谷歌seo优化推广
  • 中国做趋势的网站企业推广方法