十大设计创意网站wordpress房地产插件

news/2025/9/23 4:03:04/文章来源:
十大设计创意网站,wordpress房地产插件,wordpress 文章版权 插件,那个网站做图片好看的本章概要 基于注解方式管理 Bean 实验一#xff1a; Bean注解标记和扫描 (IoC)实验二#xff1a; 组件#xff08;Bean#xff09;作用域和周期方法注解实验三#xff1a; Bean属性赋值#xff1a;引用类型自动装配 (DI)实验四#xff1a; Bean属性赋值#xff1a;基本…本章概要 基于注解方式管理 Bean 实验一 Bean注解标记和扫描 (IoC)实验二 组件Bean作用域和周期方法注解实验三 Bean属性赋值引用类型自动装配 (DI)实验四 Bean属性赋值基本类型属性赋值 (DI)实验五 基于注解XML方式整合三层架构组件 4.3 基于注解方式管理 Bean 4.3.1 实验一 Bean注解标记和扫描 (IoC) 4.3.1.1 注解理解 和 XML 配置文件一样注解本身并不能执行注解本身仅仅只是做一个标记具体的功能是框架检测到注解标记的位置然后针对这个位置按照注解标记的功能来执行具体操作。 本质上所有一切的操作都是 Java 代码来完成的XML 和注解只是告诉框架中的 Java 代码如何执行。 举例元旦联欢会要布置教室蓝色的地方贴上元旦快乐四个字红色的地方贴上拉花黄色的地方贴上气球。 班长做了所有标记同学们来完成具体工作。墙上的标记相当于我们在代码中使用的注解后面同学们做的工作相当于框架的具体操作。 4.3.1.2 扫描理解 Spring 为了知道程序员在哪些地方标记了什么注解就需要通过扫描的方式来进行检测。然后根据注解进行后续操作。 4.3.1.3 准备Spring项目和组件 准备项目 spring-ioc-annotation-03 pom.xml dependencies!--spring context依赖--!--当你引入Spring Context依赖之后表示将Spring的基础依赖引入了--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion6.0.6/version/dependency!--junit5测试--dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.3.1/version/dependency /dependencies准备组件类 普通组件 /*** projectName: com.atguigu.ioc01** description: 普通的组件*/ public class CommonComponent { }Controller 组件 /*** projectName: com.atguigu.ioc01** description: controller类型组件*/ public class XxxController { }Service 组件 /*** projectName: com.atguigu.ioc01** description: service类型组件*/ public class XxxService { }Dao 组件 /*** projectName: com.atguigu.ioc01** description: dao类型组件*/ public class XxxDao { }4.3.1.4 组件添加标记注解 组件标记注解和区别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 相同。 通过查看源码我们得知Controller、Service、Repository这三个注解只是在Component注解的基础上起了三个新的名字。 对于 Spring 使用 IOC 容器管理这些组件来说没有区别也就是语法层面没有区别。所以 Controller、Service、Repository 这三个注解只是给开发人员看的让我们能够便于分辨组件的作用。注意虽然它们本质上一样但是为了代码的可读性、程序结构严谨我们肯定不能随便胡乱标记。 使用注解标记 普通组件 /*** projectName: com.atguigu.ioc01** description: 普通的组件*/ Component public class CommonComponent { }Controller 组件 /*** projectName: com.atguigu.ioc01** description: controller类型组件*/ Controller public class XxxController { }Service 组件 /*** projectName: com.atguigu.ioc01** description: service类型组件*/ Service public class XxxService { }Dao 组件 /*** projectName: com.atguigu.ioc01** description: dao类型组件*/ Repository public class XxxDao { }4.3.1.5 配置文件确定扫描范围 情况1基本扫描配置 spring-01.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd!-- 配置自动扫描的包 --!-- 1.包要精准,提高性能!2.会扫描指定的包和子包内容3.多个包可以使用,分割 例如: com.atguigu.controller,com.atguigu.service等--context:component-scan base-packagecom.atguigu.ioc01//beans情况2指定排除组件 !-- 情况二指定不扫描的组件 -- context:component-scan base-packagecom.atguigu.ioc01!-- context:exclude-filter标签指定排除规则 --!-- type属性指定根据什么来进行排除annotation取值表示根据注解来排除 --!-- expression属性指定排除规则的表达式对于注解来说指定全类名即可 --context:exclude-filter typeannotation expressionorg.springframework.stereotype.Controller/ /context:component-scan情况3指定扫描组件 !-- 情况三仅扫描指定的组件 -- !-- 仅扫描 关闭默认规则 追加规则 -- !-- use-default-filters属性取值false表示关闭默认扫描规则 -- context:component-scan base-packagecom.atguigu.ioc01 use-default-filtersfalse!-- context:include-filter标签指定在原有扫描规则的基础上追加的规则 --context:include-filter typeannotation expressionorg.springframework.stereotype.Controller/ /context:component-scan4.3.1.6 组件 BeanName 问题 在我们使用 XML 方式管理 bean 的时候每个 bean 都有一个唯一标识——id 属性的值便于在其他地方引用。现在使用注解后每个组件仍然应该有一个唯一标识。 默认情况类名首字母小写就是 bean 的 id。例如SoldierController 类对应的 bean 的 id 就是 soldierController。 使用value属性指定 Controller(value tianDog) public class SoldierController { }当注解中只设置一个属性时value 属性的属性名可以省略 Service(smallDog) public class SoldierService { }4.3.1.7 总结 注解方式 IoC 只是标记哪些类要被 Spring 管理最终我们还需要XML方式或者后面讲解Java配置类方式指定注解生效的包现阶段配置方式为 注解 标记 XML扫描 4.3.2 实验二 组件Bean作用域和周期方法注解 4.3.2.1 组件周期方法配置 周期方法概念 我们可以在组件类中定义方法然后当IoC容器实例化和销毁组件对象的时候进行调用这两个方法称为生命周期方法 类似于 Servlet 的init/destroy 方法我们可以在周期方法完成初始化和释放资源等工作。 周期方法声明 !-- jsr-250注解 Java提供的注解 spring提供了一个 Resource -- dependencygroupIdjakarta.annotation/groupIdartifactIdjakarta.annotation-api/artifactIdversion2.1.1/version /dependencypackage com.atguigu.ioc02;import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import org.springframework.stereotype.Component;Component public class JavaBean {//周期方法要求 方法命名随意但是要求方法必须是 public void 无形参列表PostConstruct //注解制指定初始化方法public void init() {// 初始化逻辑System.out.println(init);}PreDestroy //注解指定销毁方法public void destory() {// 释放资源逻辑System.out.println(destory);}} 4.3.2.2 组件作用域配置 Bean作用域概念 bean 标签声明Bean只是将Bean的信息配置给SpringIoC容器在IoC容器中这些bean标签对应的信息转成Spring内部 BeanDefinition 对象BeanDefinition 对象内包含定义的信息id,class,属性等等 这意味着BeanDefinition与类概念一样SpringIoC容器可以可以根据BeanDefinition对象反射创建多个Bean对象实例。 具体创建多少个Bean的实例对象由Bean的作用域Scope属性指定 作用域可选值 取值含义创建对象的时机默认值singleton在 IOC 容器中这个 bean 的对象始终为单实例IOC 容器初始化时是prototype这个 bean 在 IOC 容器中有多个实例获取 bean 时否 如果是在WebApplicationContext环境下还会有另外两个作用域但不常用 取值含义创建对象的时机默认值request请求范围内有效的实例每次请求否session会话范围内有效的实例每次会话否 作用域配置 package com.atguigu.ioc02;import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component;Component // Scope(scopeName ConfigurableBeanFactory.SCOPE_SINGLETON) //单例,默认值 Scope(scopeName ConfigurableBeanFactory.SCOPE_PROTOTYPE) //多例 二选一 public class JavaBean {//周期方法要求 方法命名随意但是要求方法必须是 public void 无形参列表PostConstruct //注解制指定初始化方法public void init() {// 初始化逻辑System.out.println(init);}PreDestroy //注解指定销毁方法public void destory() {// 释放资源逻辑System.out.println(destory);}} spring-02.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.atguigu.ioc02//beansSpringIocTest.java Test public void testIoc_02(){//1.创建ioc容器ClassPathXmlApplicationContext applicationContext new ClassPathXmlApplicationContext(spring-02.xml);JavaBean bean1 applicationContext.getBean(JavaBean.class);JavaBean bean2 applicationContext.getBean(JavaBean.class);System.out.println(bean1 bean2);applicationContext.close(); }4.3.3 实验三 Bean属性赋值引用类型自动装配 (DI) 4.3.3.1 设定场景 SoldierController 需要 SoldierServiceSoldierService 需要 SoldierDao 同时在各个组件中声明要调用的方法。SoldierController 中声明方法 package com.atguigu.ioc03;import org.springframework.stereotype.Controller;Controller(value tianDog) public class SoldierController {private SoldierService soldierService;public void getMessage() {soldierService.getMessage();}}SoldierService 中声明方法 package com.atguigu.ioc03;import org.springframework.stereotype.Service;Service(smallDog) public class SoldierService {private SoldierDao soldierDao;public void getMessage() {soldierDao.getMessage();} }SoldierDao 中声明方法 package com.atguigu.ioc03;import org.springframework.stereotype.Repository;Repository public class SoldierDao {public void getMessage() {System.out.print(I am a soldier);}}4.3.3.2 自动装配实现 前提 参与自动装配的组件需要装配、被装配全部都必须在IoC容器中。 注意不区分IoC的方式XML和注解都可以 Autowired注解 在成员变量上直接标记Autowired注解即可不需要提供setXxx()方法。以后我们在项目中的正式用法就是这样。 给 Controller 装配 Service package com.atguigu.ioc03;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller;Controller(value tianDog) public class SoldierController {Autowiredprivate SoldierService soldierService;public void getMessage() {soldierService.getMessage();}}给 Service 装配 Dao package com.atguigu.ioc03;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service(smallDog) public class SoldierService {Autowiredprivate SoldierDao soldierDao;public void getMessage() {soldierDao.getMessage();} }spring-03.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.atguigu.ioc03 //beansSpringIocTest.java Testpublic void testIoc_03(){ClassPathXmlApplicationContext applicationContext new ClassPathXmlApplicationContext(spring-03.xml);SoldierController soldierController applicationContext.getBean(SoldierController.class);//场景1: ioc容器中有一个UserService接口对应的实现类对象soldierController.getMessage();applicationContext.close();}4.3.3.3 Autowired 注解细节 标记位置 成员变量 这是最主要的使用方式 与xml进行bean ref引用不同他不需要有set方法 Service(smallDog) public class SoldierService {Autowiredprivate SoldierDao soldierDao;public void getMessage() {soldierDao.getMessage();} }构造器 Controller(value tianDog) public class SoldierController {private SoldierService soldierService;Autowiredpublic SoldierController(SoldierService soldierService) {this.soldierService soldierService;} }setXxx()方法 Controller(value tianDog) public class SoldierController {private SoldierService soldierService;Autowiredpublic void setSoldierService(SoldierService soldierService) {this.soldierService soldierService;} }工作流程 首先根据所需要的组件类型到 IOC 容器中查找 能够找到唯一的 bean直接执行装配如果完全找不到匹配这个类型的 bean装配失败和所需类型匹配的 bean 不止一个 没有 Qualifier 注解根据 Autowired 标记位置成员变量的变量名作为 bean 的 id 进行匹配 能够找到执行装配找不到装配失败 使用 Qualifier 注解根据 Qualifier 注解中指定的名称作为 bean 的id进行匹配 能够找到执行装配找不到装配失败 Controller(value tianDog) public class SoldierController {AutowiredQualifier(value maomiService222)// 根据面向接口编程思想使用接口类型引入Service组件private ISoldierService soldierService; }4.3.3.4 佛系装配 给 Autowired 注解设置 required false 属性表示能装就装装不上就不装。 但是实际开发时基本上所有需要装配组件的地方都是必须装配的用不上这个属性 Controller(value tianDog) public class SoldierController {// 给Autowired注解设置required false属性表示能装就装装不上就不装Autowired(required false)private ISoldierService soldierService; }4.3.3.5 扩展 JSR-250 注解 Resource 理解JSR系列注解 JSRJava Specification Requests是Java平台标准化进程中的一种技术规范而JSR注解是其中一部分重要的内容。 按照JSR的分类以及注解语义的不同可以将JSR注解分为不同的系列主要有以下几个系列 JSR-175: 这个JSR是Java SE 5引入的是Java注解最早的规范化版本Java SE 5后的版本中都包含该JSR中定义的注解。主要包括以下几种标准注解 Deprecated: 标识一个程序元素如类、方法或字段已过时并且在将来的版本中可能会被删除。Override: 标识一个方法重写了父类中的方法。SuppressWarnings: 抑制编译时产生的警告消息。SafeVarargs: 标识一个有安全性警告的可变参数方法。FunctionalInterface: 标识一个接口只有一个抽象方法可以作为lambda表达式的目标。 JSR-250: 这个JSR主要用于在Java EE 5中定义一些支持注解。该JSR主要定义了一些用于进行对象管理的注解包括 Resource: 标识一个需要注入的资源是实现Java EE组件之间依赖关系的一种方式。PostConstruct: 标识一个方法作为初始化方法。PreDestroy: 标识一个方法作为销毁方法。Resource.AuthenticationType: 标识注入的资源的身份验证类型。Resource.AuthenticationType: 标识注入的资源的默认名称。 JSR-269: 这个JSR主要是Java SE 6中引入的一种支持编译时元数据处理的框架即使用注解来处理Java源文件。该JSR定义了一些可以用注解标记的注解处理器用于生成一些元数据常用的注解有 SupportedAnnotationTypes: 标识注解处理器所处理的注解类型。SupportedSourceVersion: 标识注解处理器支持的Java源码版本。 JSR-330: 该JSR主要为Java应用程序定义了一个依赖注入的标准即Java依赖注入标准javax.inject。在此规范中定义了多种注解包括 Named: 标识一个被依赖注入的组件的名称。Inject: 标识一个需要被注入的依赖组件。Singleton: 标识一个组件的生命周期只有一个唯一的实例。 JSR-250: 这个JSR主要是Java EE 5中定义一些支持注解。该JSR包含了一些支持注解可以用于对Java EE组件进行管理包括 RolesAllowed: 标识授权角色PermitAll: 标识一个活动无需进行身份验证。DenyAll: 标识不提供针对该方法的访问控制。DeclareRoles: 声明安全角色。但是你要理解JSR是Java提供的技术规范也就是说他只是规定了注解和注解的含义JSR并不是直接提供特定的实现而是提供标准和指导方针由第三方框架Spring和库来实现和提供对应的功能。 JSR-250 Resource注解Resource注解也可以完成属性注入。那它和Autowired注解有什么区别 Resource注解是JDK扩展包中的也就是说属于JDK的一部分。所以该注解是标准注解更加具有通用性。(JSR-250标准中制定的注解类型。JSR是Java规范提案。)Autowired注解是Spring框架自己的。Resource注解默认根据Bean名称装配未指定name时使用属性名作为name。通过name找不到的话会自动启动通过类型装配。Autowired注解默认根据类型装配如果想根据名称装配需要配合Qualifier注解一起用。Resource注解用在属性上、setter方法上。Autowired注解用在属性上、setter方法上、构造方法上、构造方法参数上。Resource注解属于JDK扩展包所以不在JDK当中需要额外引入以下依赖【高于JDK11或低于JDK8需要引入以下依赖】 dependencygroupIdjakarta.annotation/groupIdartifactIdjakarta.annotation-api/artifactIdversion2.1.1/version /dependencyResource使用 Controller public class XxxController {/*** 1. 如果没有指定name,先根据属性名查找IoC中组件xxxService* 2. 如果没有指定name,并且属性名没有对应的组件,会根据属性类型查找* 3. 可以指定name名称查找! Resource(nametest) Autowired Qualifier(valuetest)*/Resourceprivate XxxService xxxService;//Resource(name 指定beanName)//private XxxService xxxService;public void show(){System.out.println(XxxController.show);xxxService.show();} }4.3.4 实验四 Bean属性赋值基本类型属性赋值 (DI) Value 通常用于注入外部化属性 声明外部配置 application.properties catalog.nameMovieCatalogxml 引入外部配置 spring-04.xml !-- 引入外部配置文件-- context:component-scan base-packagecom.atguigu.ioc04 / context:property-placeholder locationclasspath:application.properties /Value 注解读取配置 package com.atguigu.ioc04;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;/*** projectName: com.atguigu.components* p* description: 普通的组件*/ Component public class CommonComponent {/*** 情况1: ${key} 取外部配置key对应的值!* 情况2: ${key:defaultValue} 没有key,可以给与默认值*/Value(${catalog:hahaha})private String name;public String getName() {return name;}public void setName(String name) {this.name name;} }SpringIocTest.java Test public void testIoc_04(){ClassPathXmlApplicationContext applicationContext new ClassPathXmlApplicationContext(spring-04.xml);CommonComponent commonComponent applicationContext.getBean(CommonComponent.class);//场景1: ioc容器中有一个UserService接口对应的实现类对象String name commonComponent.getName();System.out.println(name);applicationContext.close(); }4.3.5 实验五 基于注解XML方式整合三层架构组件 4.3.5.1 需求分析 搭建一个三层架构案例模拟查询全部学生学生表信息持久层使用JdbcTemplate和Druid技术使用XML注解方式进行组件管理 4.3.5.2 数据库准备 create database studb;use studb;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,gender VARCHAR(10) NOT NULL,age INT,class VARCHAR(50) );INSERT INTO students (id, name, gender, age, class) VALUES(1, 张三, 男, 20, 高中一班),(2, 李四, 男, 19, 高中二班),(3, 王五, 女, 18, 高中一班),(4, 赵六, 女, 20, 高中三班),(5, 刘七, 男, 19, 高中二班),(6, 陈八, 女, 18, 高中一班),(7, 杨九, 男, 20, 高中三班),(8, 吴十, 男, 19, 高中二班);4.3.5.3 项目准备 项目创建 spring-annotation-practice-04依赖导入 dependencies!--spring context依赖--!--当你引入SpringContext依赖之后表示将Spring的基础依赖引入了--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion6.0.6/version/dependency!-- 数据库驱动和连接池--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.25/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version/dependencydependencygroupIdjakarta.annotation/groupIdartifactIdjakarta.annotation-api/artifactIdversion2.1.1/version/dependency!-- spring-jdbc --dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion6.0.6/version/dependency/dependencies实体类准备 public class Student {private Integer id;private String name;private String gender;private Integer age;private String classes;public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender gender;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getClasses() {return classes;}public void setClasses(String classes) {this.classes classes;}Overridepublic String toString() {return Student{ id id , name name \ , gender gender \ , age age , classes classes \ };} }4.3.5.4 三层架构搭建和实现 持久层 //接口 public interface StudentDao {/*** 查询全部学生数据* return*/ListStudent queryAll(); }//实现类 Repository public class StudentDaoImpl implements StudentDao {Autowiredprivate JdbcTemplate jdbcTemplate;/*** 查询全部学生数据* return*/Overridepublic ListStudent queryAll() {String sql select id , name , age , gender , class as classes from students ;;/*query可以返回集合!BeanPropertyRowMapper就是封装好RowMapper的实现,要求属性名和列名相同即可*/ListStudent studentList jdbcTemplate.query(sql, new BeanPropertyRowMapper(Student.class));return studentList;} }业务层 //接口 public interface StudentService {/*** 查询全部学员业务* return*/ListStudent findAll();}//实现类 Service public class StudentServiceImpl implements StudentService {Autowiredprivate StudentDao studentDao;/*** 查询全部学员业务* return*/Overridepublic ListStudent findAll() {ListStudent studentList studentDao.queryAll();return studentList;} }表述层 Controller public class StudentController {Autowiredprivate StudentService studentService;public void findAll(){ListStudent studentList studentService.findAll();System.out.println(studentList studentList);} }4.3.5.5 三层架构IoC配置 spring-ioc.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd!-- 导入外部属性文件 --context:property-placeholder locationclasspath:jdbc.properties /!-- 配置数据源 --bean iddruidDataSource classcom.alibaba.druid.pool.DruidDataSourceproperty nameurl value${atguigu.url}/property namedriverClassName value${atguigu.driver}/property nameusername value${atguigu.username}/property namepassword value${atguigu.password}//beanbean classorg.springframework.jdbc.core.JdbcTemplateproperty namedataSource refdruidDataSource //bean!-- 扫描Ioc/DI注解 --context:component-scan base-packagecom.atguigu.dao,com.atguigu.service,com.atguigu.controller //beans4.3.5.6 数据库连接信息配置 jdbc.properties atguigu.urljdbc:mysql://localhost:3306/studb atguigu.drivercom.mysql.cj.jdbc.Driver atguigu.usernameroot atguigu.passwordroot4.3.5.7 运行测试 public class ControllerTest {Testpublic void testRun(){ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring-ioc.xml);StudentController studentController applicationContext.getBean(StudentController.class);studentController.findAll();} }4.3.5.8 注解 XML IoC 方式问题总结 自定义类可以使用注解方式但是第三方依赖的类依然使用XML方式XML格式解析效率低

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

厦门人才网唯一官方网站登录入口html电影网站模板

8.3.0. 本章内容 第八章主要讲的是Rust中常见的集合。Rust中提供了很多集合类型的数据结构,这些集合可以包含很多值。但是第八章所讲的集合与数组和元组有所不同。 第八章中的集合是存储在堆内存上而非栈内存上的,这也意味着这些集合的数据大小无需在编…

网站后台密码仁寿网站建设

1. 问题 软件版本: VMware 16.2.1Ubuntu 18 现象 C程序通过Makefile编译,在make过程中卡死,没有任何报错。卡死后任何操作都无反应,无法关机,只能通过任务管理器强行结束VMware忽然出现的这个问题,之前用了…

招商网站建设方案做微推的网站

其中大部分内容在C API文档的Memory Management章节中得到回答.一些文档比您要求的更容易.有关详细信息,您必须转到源代码.没有人会愿意这样做,除非你选择一个特定的版本. (至少2.7.5,2.7.6,3.3.2之前,3.3.3之前和3.4之前对于不同的人来说将是有趣的.)obmalloc.c文件的来源是您…

网站系统php源码网赌代理

电压放大器是电子电路中常用的一种器件,用于将输入信号的电压放大至所需的输出电压。它在许多领域中有着重要的应用,包括通信、音频放大、仪器测量等。以下是电压放大器的一些应用及示例: 信号处理:在许多电子系统中,需…

博明网站建设闵行区学生成长空间

一、配置文件位置 以配置文件启动 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf ( Windows名为redis.windows. conf) 例: # 这里要改成你自己的安装目录 cd ./redis-6.0.8 vim redis.conf redis对配置文件对大小写不敏感 二、配置文件 1、获取当前服务的…

手机网站下拉刷新网站开发流程包括哪几个步骤?

4.1 1.目标:读懂文件中SVM算法,识别文件中的测试数据是RFID信号或者是LORA信号。 使用训练数据训练模型,并使用testdata测试,对实验结果进行分析并截图形成报告提交。 2.做法: ①读懂两篇博客 ②训练模型弄出来&a…

做电商与做网站的区别seo网站自动推广

Linux(ubuntu) – 安装后调配 1. 双系统修改默认启动项: 1. 进入linux, ctrlaltt:打开终端; 2. 输入:sudo gedit /etc/default/grub 3. 修改grub内的值:4. 输入:sudo update-grub 5. 重启验证。2. 修改下载镜像源 1…

贷款织梦网站模版如何建立一个网站并运行

题目描述: 若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如&…

做网站买好域名怎么办商务网站建设摘要

本周大部分时间花费在了考驾照上,所以没有在学习上用太多的时间。在不多的时间里看完了老师推荐的《大道至简》这本书,从书中学到了很多编程方面的思想,受益匪浅。还完成了2个代码的编译,一个是判断AB和C的关系,这个并…

河北中保建设集团网站首页做美足网站违法吗

目录: bash编程语法bash脚本编写 1.bash编程语法 Bash 编程基础 变量引号数组控制语句函数 Bash 变量 语法: Variable_namevalue Bash 变量定义的规则 变量名区分大小写,a和A为两个不同的变量。变量名可以使用大小写字母混编的形式进行…

四川网站建设哪家专业企业网站接入微信支付

Day45 力扣动态规划 : 1143.最长公共子序列 |1035.不相交的线 | 53. 最大子序和 1143.最长公共子序列第一印象看完题解的思路实现中的困难感悟代码 1035.不相交的线第一印象感悟代码 53. 最大子序和第一印象dp递推公式初始化遍历顺序 实现中的困难感悟代…

个人网站备案怎么样才能简单的过asp.net 微网站开发教程

在软件设计中,有效地组织对象的创建过程是至关重要的。Java工厂模式是一种优秀的设计模式,它能够在对象创建的过程中提供更大的灵活性和可扩展性。本文将深入探讨工厂模式的不同实现方式,并提供详细的代码示例,以帮助读者更好地理…

电子商务网站建设类型兰州网站订制

1 引言 自适应巡航控制( Adaptive Cruise Control,ACC) 是汽车驾驶辅助系统的重要组成部分,其作用是根据车距传感器探测到本车( ACC 车辆) 与主目标车辆( 前车) 之间的相对位置和相对速度信息,自动调节ACC 车辆的节气门开度或部分制动力矩( 即…

360帝国模板网欢迎大家来访_济南网站建设推广_济南 去114网泰安网信科技

发电机组负载测试是确保发电机组能够在实际运行中稳定工作的重要步骤,负载测试可以模拟发电机组在不同负载条件下的工作情况,评估其性能和稳定性。负载测试可以验证发电机组在不同负载条件下的性能表现,通过模拟实际使用情况评估发电机组的输…

高端网站建设套餐网站开发专业简历模板

(1).基本的语法 test condition [ condition ] 注意condition前后要有空格;在使用该种表达式的时候,条件非空即为 true,[ hello ]返回 true,[ ] 返回 false。我们可以通过echo $?来判断上一次执行的情况来判断真假(0真1假)。

谷歌网站为何打不开seo搜索引擎优化案例

原型模式是一种创建型模式,也是属于创建对象的一种方式,像西游记里面的孙悟空吹猴毛也属于原型模式,克隆出来了一群的猴子猴孙,还有细胞的分裂,spring中的Bean的生命周期好像有一个单例还有个原型,那个原型就是每次请求都复制一个对象出来,官方的定义是:用原型实例指…

购物网站项目建设内容拼多多如何无货源开店

目录 1.概念 2.常见的字节序 3.转换接口 1.概念 主机字节序列分为大端字节序和小端字节序,不同的主机采用的字节序列可能不同。大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节存储在内存的高地址处。小端字节序则是指整数的高位字节…

深圳网博网站建设小程序怎么做优惠券网站

基于 项目02《游戏-06-开发》Unity3D , 接下来做UI框架的逻辑系统,管理器和UI背包, 首先闯将UI框架的两个重要脚本 BasePanel.cs 和 UIManager.cs , 双击BasePanel.cs脚本修改代码: using UnityEngine; pu…

如何软件网站优化公司江门学做网站课程

在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径: import os testfiles [] testfilepaths [] L len(os.path.abspath(.))def searchfile(path):for item in os.listdir(path):if os.path.isdir(os.path.join(p…

国内 设计网站的公司网站网站模块是什么意思

一、软件包管理器 yum 1、什么是软件包 在 Linux 下安装软件,通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成…