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

企业网站模板 下载 论坛网站建设与维护功能意义

企业网站模板 下载 论坛,网站建设与维护功能意义,优酷网站谁做的,wordpress 歌词#x1f9f8;安清h#xff1a;个人主页 #x1f3a5;个人专栏#xff1a;【计算机网络】【Mybatis篇】 #x1f6a6;作者简介#xff1a;一个有趣爱睡觉的intp#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 #x1f3af;Spring IOC容器 #x1f6a…   安清h个人主页 个人专栏【计算机网络】【Mybatis篇】 作者简介一个有趣爱睡觉的intp期待和更多人分享自己所学知识的真诚大学生。  目录 Spring IOC容器 BeanFactory接口 ApplicationContext接口 Bean的配置 Bean元素的多个属性 Bean元素的多个子元素 Bean的实例化 构造方法实例 ✨pom.xml文件 ✨创建Bean1类 ✨编写applicationContext.xml文件 ✨编写测试类 静态工厂实例化 ✨创建Bean2类 ✨创建MyBean2Factory类 ✨编写applicationContext.xml文件 ✨编写测试类 实例工厂实例化 ✨创建Bean3类 ✨创建MyBean3Factory类 ✨编写applicationContext.xml文件 ✨编写测试类 Bean的作用域 Bean的装配方式 基于Xml的装配 基于注解的装配  导入依赖 创建XML配置文件 定义实体类 定义DAO层 实现DAO层 定义Service层 实现Service层 定义Controller层 定义测试类 Spring IOC容器 Spring框架的主要功能是通过Spring容器实现的Spring容器可以管理人们开发的各种Bean。Spring提供了相应API来管理Bean在Spring容器的API里最常用的是BeanFactory和ApplicationContext这两个接口。 BeanFactory接口 BeanFactory 是 Spring 框架中的一个核心接口它定义了 Spring IoC 容器的基本功能。BeanFactory 提供了配置应用程序组件的方式并且负责这些组件的生命周期和依赖关系的管理。它是 Spring 框架中最原始的 IoC 容器的表现形式。BeanFactory 通常由 ApplicationContext 接口实现。 BeanFactory接口的一些关键方法示例 Object getBean(String name)根据给定的 Bean 名称获取一个 Bean 实例。 T T getBean(String name, ClassT requiredType)根据给定的 Bean 名称和期望的类型获取一个 Bean 实例。 Object getBean(String name, Object... args)根据给定的 Bean 名称和构造函数参数获取一个 Bean 实例。 T T getBean(ClassT requiredType)根据给定的类型获取一个 Bean 实例。 T T getBean(ClassT requiredType, Object... args)根据给定的类型和构造函数参数获取一个 Bean 实例。 boolean containsBean(String name)检查是否包含一个具有给定名称的 Bean。 boolean isSingleton(String name)检查一个具有给定名称的 Bean 是否是单例作用域。 boolean isPrototype(String name)检查一个具有给定名称的 Bean 是否是原型作用域。 boolean isTypeMatch(String name, Class? targetType)检查一个具有给定名称的 Bean 是否是指定类型的一个匹配。 Class? getType(String name)获取一个具有给定名称的 Bean 的类型。 String[] getAliases(String name)获取一个具有给定名称的 Bean 的所有别名。 ApplicationContext接口 ApplicationContext 接口是 Spring 框架中 BeanFactory 的一个扩展它提供了更多的高级功能和特性以支持企业级应用开发。ApplicationContext 包含了 BeanFactory 的所有功能。 ApplicationContext 接口的一些关键实现包括 ClassPathXmlApplicationContext从类路径下的 XML 配置文件中加载上下文定义。FileSystemXmlApplicationContext从文件系统下的 XML 配置文件中加载上下文定义。AnnotationConfigApplicationContext从注解配置类中加载上下文定义。WebApplicationContext用于 Web 应用程序如 ServletContext 或 PortletContext。 Bean的配置 在Spring框架中Bean的配置是将类定义为Spring容器管理的对象的过程。Spring支持多种方式来配置Bean包括XML配置、注解和Java配置类。 Bean元素的多个属性 在Spring的XML配置中bean元素具有多个属性用于定义和管理Bean的创建和行为。以下是一些常用的bean元素属性 idBean的唯一标识符。通常用于通过getBean方法按名称检索Bean。 classBean的全限定类名。Spring将使用这个类名来实例化Bean。 name为Bean提供额外的名称。可以有多个名称它们之间用逗号、空格或分号分隔。 scope定义Bean的作用域。常见的作用域包括singleton单例默认值、prototype原型、requestWeb应用中的请求、sessionWeb应用中的会话等。 lazy-init指定Bean是否应该延迟初始化直到它被首次请求时才创建。 Bean元素的多个子元素 在Spring的XML配置中bean元素可以包含多个子元素这些子元素用于定义Bean的属性、构造函数参数、元数据以及其他配置。以下是一些常用的bean子元素 property用于设置Bean的属性。它包含一个或多个value、ref或bean子元素用于指定属性的值。 constructor-arg用于提供构造函数参数。可以包含value、ref或bean子元素或者通过index或type属性指定参数的位置或类型。 property的集合可以定义多个property子元素来设置Bean的多个属性。 Bean的实例化 在Spring框架中Bean的实例化是指创建Bean实例的过程。Spring提供了多种方式来实例化Bean这些方式可以通过配置来指定。以下是Spring中常见的Bean实例化方式 构造方法实例 在Spring中构造方法实例化是通过调用类的构造方法来创建Bean实例的一种方式。这种方式适用于需要通过构造参数来初始化Bean的情况。以下是如何在Spring中使用构造方法实例化Bean的步骤 ✨pom.xml文件 dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.8.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion5.2.8.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion5.2.8.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-expression/artifactIdversion5.2.8.RELEASE/version/dependencydependencygroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactIdversion1.2/version/dependency/dependencies ✨创建Bean1类 public class Bean1 {public Bean1(){System.out.println(Bean1);} } ✨编写applicationContext.xml文件 bean idbean1 classcom.han.Bean1/bean ✨编写测试类 public class Bean1Test {public static void main(String[]args){ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml);Bean1 bean (Bean1) applicationContext.getBean(bean1);System.out.println(bean);} } 静态工厂实例化 静态工厂实例化是指使用类的静态方法来创建Bean实例的方式。在Spring中可以通过配置XML文件来指定使用哪个类的静态方法来创建Bean。这种方式特别适用于那些没有构造函数参数或者需要通过特定工厂方法来创建实例的情况。 ✨创建Bean2类 public class Bean2 {public Bean2(){System.out.println(Bean2);} }✨创建MyBean2Factory类 public class Bean2Factory {public static Bean2 createBean(){return new Bean2();} }✨编写applicationContext.xml文件 bean idbean2 classcom.han.Bean2Factory factory-methodcreateBean/bean ✨编写测试类 public class Bean2Test {public static void main(String[]args){ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml);Bean2 bean2 (Bean2) applicationContext.getBean(bean2);System.out.println(bean2);} } 实例工厂实例化 在Spring中实例工厂实例化是一种创建Bean实例的方法它允许你通过工厂方法来创建Bean而不是通过构造函数或静态工厂方法。这种方式提供了更高的灵活性因为你可以在工厂方法中执行复杂的逻辑来决定哪个Bean的实例应该被创建  ✨创建Bean3类 public class Bean3 {public Bean3(){System.out.println(Bean3);} } ✨创建MyBean3Factory类 public class MyBean3Factory {public MyBean3Factory(){System.out.println(bean3工厂实例化中);}public Bean3 createBean(){return new Bean3();} } ✨编写applicationContext.xml文件 bean idmybean3 classcom.han.MyBean3Factory/bean idbean3 factory-beanmybean3 factory-methodcreateBean/ ✨编写测试类 public class Bean3Test {public static void main(String[]args){ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml);Bean3 bean3 (Bean3) applicationContext.getBean(bean3);System.out.println(bean3);} } Bean的作用域 在bean标签中可以通过scope属性指定对象的作用域 scopesingleton表示当前bean是单例模式默认饿汉模式Spring容器初始化阶段就会完成此对象的创建在bean标签中设置lazy-inittrue时变为懒汉模式 scopeprototype表示当前bean为非单例模式每次通过Spring容器获取此bean的对象时都会创建一个新的对象。 单例 bean idbook2Spring classcom.haust.pojo.Book scopesingleton lazy-inittrue/bean 非单例 bean idbook1Spring classcom.haust.pojo.Book scopeprototype/bean bean的声明周期方法 在bean标签中通过init-method属性指定当前bean的初始化方法初始化方法在构造器执行之后执行。 在bean标签中通过destory-method属性指定当前bean的销毁方法销毁方法在对象销毁之前执行。 Bean的装配方式 基于Xml的装配 基于XML的装配是Spring框架中的一种配置方式它允许开发者通过XML文件来定义和管理Bean的创建和依赖关系。这种方式在早期的Spring应用中非常常见尽管现在注解和Java配置逐渐成为主流但XML配置仍然是一种重要的配置手段特别是在需要配置大量复杂Bean关系时。 在XML配置中Bean的装配可以通过以下几种方式实现 setter注入Setter Injection这是最常见的装配方式通过在XML文件中使用property标签来注入依赖。这种方式要求Bean类必须提供一个无参构造方法并且需要注入的属性必须有对应的setter方法。例如 bean idstudent1 classeducoder.Studentproperty namename value张三 /property nameage value25 / /bean 构造注入Constructor Injection通过构造器注入的方式装配Bean需要在XML配置文件中使用constructor-arg标签来定义构造方法的参数。这种方式适用于需要通过构造器传递依赖的场景。例如 bean idstudent2 classeducoder.Studentconstructor-arg index0 value李四 /constructor-arg index1 value24 / /bean 基于注解的装配  基于注解的装配是Spring框架中的一种依赖注入方式它通过在代码中使用特定的注解来实现Bean的自动装配从而减少了XML配置的复杂性。这种方式使得配置更加简洁代码与配置的耦合度更低提高了开发效率。以下是Spring中常用的几种注解装配方式 Component、Service、Repository、Controller这些注解用于声明一个类作为Spring容器管理的Bean。Component是通用的而其他注解提供了额外的语义信息。Value用于注入外部配置的值如properties文件中的值。Resource这是Java标准的一部分可以通过名称来自动装配Bean如果Bean的名称与字段名或setter方法名相同Spring容器会自动装配。Autowired这是最常见的自动装配注解Spring容器会通过类型来自动装配Bean。如果存在多个相同类型的Bean可以通过Qualifier注解来指定具体的Bean。 下面通过一个案例来演示用注解装配Bean具体步骤及代码如下 导入依赖 dependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion5.2.8.RELEASE/version/dependency 创建XML配置文件 在appicationContext.xml文件中添加如下代码 context:component-scan base-packagecom.han/ 代码中指定要扫描的包为com.han这个包下的注解就会生效。  定义实体类 实体类User是一个简单的Java类使用Component注解标记为Spring管理的Bean并设置了作用域为单例。类中定义了三个属性id、username和password以及它们的getter和setter方法。Value注解用于注入配置文件中的值。toString方法被覆盖以提供类的字符串表示。 Component(user) Scope(singleton) public class User {Value(1)private int id;Value(haha)private String username;Value(789)private String password;public int getId() {return id;}public void setId(int id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}Overridepublic String toString() {return User{ id id , username username \ , password password \ };} } 定义DAO层 DAO层定义了一个接口UserDao其中包含一个save方法。这个接口代表了与数据库交互的数据访问对象save方法用于表示保存数据的操作。 public interface UserDao {public void save(); }实现DAO层 UserDaoImpl类实现了UserDao接口并使用Repository注解标记为Spring的Repository Bean。它的save方法中通过Spring的ApplicationContext获取了User Bean的实例并打印了用户信息和保存操作的消息。 //使用Repository将UserDaoImpl类标识为Spring中的Bean Repository(userDao) public class UserDaoImpl implements UserDao{Overridepublic void save() {ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml);User user (User) applicationContext.getBean(user);System.out.println(user);System.out.println(执行UserDaoImpl.save());} } 定义Service层 Service层定义了一个接口UserService其中包含一个save方法。这个接口代表了业务逻辑层save方法用于表示执行保存操作的业务逻辑。 public interface UserService {public void save(); } 实现Service层 UserServiceImpl类实现了UserService接口并使用Repository注解标记为Spring的Service Bean。它通过Resource注解注入了UserDao并在save方法中调用了UserDao的save方法然后打印了业务逻辑层的保存操作消息。 Repository(userService) public class UserServiceImpl implements UserService{//使用Resource注解注入UserDaoResource(nameuserDao)private UserDao userDao;Overridepublic void save() {this.userDao.save();System.out.println(执行UserServiceImpl.save());} }定义Controller层 Controller层定义了一个UserController类使用Controller注解标记为Spring的Controller Bean。它通过Resource注解注入了UserService并在save方法中调用了UserService的save方法然后打印了控制器层的保存操作消息。 //使用Controller注解将UserController类标识为Bean Controller public class UserController {Resource(nameuserService)private UserService userService;public void save(){this.userService.save();System.out.println(执行UserController.save());} } 定义测试类 测试类AnnotationTest包含了一个main方法用于初始化Spring的ApplicationContext并获取UserController的实例。然后调用UserController的save方法来执行保存操作从而测试整个Spring应用的流程是否正确。 public class AnnotationTest {public static void main(String[]args){ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml);UserController userController (UserController) applicationContext.getBean(userController);userController.save();} }以上就是今天要讲的内容了主要介绍了Bean的配置实例化作用域以及装配方式等相关内容如果您感兴趣的话可以订阅我的相关专栏。非常感谢您的阅读如果这篇文章对您有帮助那将是我的荣幸。我们下期再见啦
http://www.dnsts.com.cn/news/183999.html

相关文章:

  • 为什么做游戏网站被封鹤壁网络推广公司
  • 国外网页素材网站做网站产品搜索展示实现
  • 番禺 建网站 360元内部搜索引擎优化
  • 网站公司做文员行业网站 源码
  • 鞍山百度做网站wordpress用什么数据库连接
  • 律师网站建设怎么样wordpress google字体 插件
  • 免费建设一个网站网站顶部轮播怎么做
  • 百度云建站WordPress标志网
  • 万网的网站代码怎么看便利的合肥网站建设
  • 怎样用word做网站wordpress移除密码保护
  • 建设银行有没有全球门户网站网站建设课设
  • 可以做单的猎头网站企业信息查询系统官网湖南
  • 计生网站生育文明建设站长工具名称查网站
  • 苏州企业网站设计方案seo教程自学网
  • 织梦网站修改幻灯片wordpress 小米路由器
  • 深圳网站搭建哪里找怎么做下载网站吗
  • 做自媒体的网站名字安徽专业网站建设创新
  • 免费网站建设源码wordpress 获取
  • 网站主机安全济南网站建设公司-远大云.
  • 泗阳县住房和城乡建设局网站科技网站设计案例
  • 网站后台编辑器不能正常显示网站怎么做谷歌推广
  • 大连网站建设优化如何自建网站 卖东西
  • 建站如何赚钱计算机编程培训班
  • 深圳的建站公司国外的跨境电商平台有哪些
  • 做卡盟开端网站要多少钱读书网站排名
  • 自己注册一个网站要多少钱云服务器建设网站教程
  • 一台ip做两个网站wordpress禁用插件
  • 电子商务网站建设与管理课设绿色模板网站
  • 玉溪住房和城乡建设局网站久久建筑网怎么样
  • 网站建设php有哪些做网站属于印花税哪个范畴