首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java在工作当中经常使用的常用类

包装类 概述 Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类...用Integer与 int为例:基本数值---->包装对象包装对象---->基本数值自动装箱与自动拆箱由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱...以Integer类的静态方法parseXxx为例注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常。...Java中提供了两个可变字符串类:StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全。StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。...,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。

20000

JavaEE中资源注入松耦合的实现 | 从开发角度看应用架构13

虽然CDI是在Java EE 6中引入的,但CDI背后的概念已经出现在各种框架中,包括Spring,Google Guice等。...Java Community Process在2009年12月以最终形式引入了Java Specification Request 299.JSR 346正式定义了Java EE 7平台的CDI。...此外,CDI能够直接注入常规Java类,而资源注入不能注入常规类,而是通过JNDI名称引用资源。 二、比较EJB和CDI 区分EJB和CDI很重要,因为两个规范之间的功能有重叠。...使用@Produces在Java类中注释属性时,可以将该属性注入任何托管bean中的属性。 这对于声明和使用Java EE资源(例如数据源和记录器)非常有用。...双击PersonService.java文件。 在类头之后,添加以下代码以将NameUtil接口注入PersonService类: ?

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring认证中国教育管理中心-Spring Data JPA 参考文档七

    首先,您必须AuditingEntityListener在orm.xml文件内的持久性上下文中注册要用于所有实体的,如以下示例所示: 示例 116.审计配置 orm.xml 在类路径上有。以下示例显示了如何使用@EnableJpaAuditing注释: 示例 118....使用JpaContext在自定义实现 当使用多个EntityManager实例和自定义存储库实现时,您需要将正确的连接EntityManager到存储库实现类中。...CDI集成 存储库接口的实例通常由容器创建,因此在使用 Spring Data 时,Spring 是最自然的选择。Spring 为创建 bean 实例提供了复杂的支持,如创建存储库实例中所述。...从 version 1.1.0 开始,Spring Data JPA 附带了一个自定义 CDI 扩展,允许在 CDI 环境中使用存储库抽象。该扩展是 JAR 的一部分。

    1K20

    工作流中容器化的依赖注入!Activiti集成CDI实现工作流的可配置型和可扩展型

    Activiti工作流集成CDI简介 activiti-cdi模块提供activiti的可配置型和cdi扩展 activiti-cdi的特性: 支持 @BusinessProcessScoped beans..., 绑定到流程实例的cdi bean 流程为cdi bean支持自定义EL处理器 使用注解为流程实例提供声明式控制 Activiti可以挂接在cdi事件总线上 支持Java EE和Java SE, 支持...的实现,使用ProcessEngines这个工具类来查找ProcessEngine 默认配置下,使用ProcessEngines#NAME_DEFAULT来查找ProcessEngine.这个类可能是使用自定义名称的子类...的实例 为了提供接口的自定义实现,需要创建一个文本文件,名为META-INF/services/org.activiti.cdi.spi.ProcessEngineLookup, 在文件中需要指定实现的全类名...环境的流程执行 BPMN业务流程通常是一个长时间运行的操作,包含了用户和系统任务的操作 运行过程中,流程会分成多个单独的工作单元,由用户和应用逻辑执行 在activiti-cdi中,流程实例可以分配到cdi

    1.1K20

    设计模式介绍:依赖注入代码示例

    正如我之前在关于可靠设计原则的文章中所解释的,它们的目标是提高代码的可重用性。还可以减少需要更改类的频率。依赖注入可以通过分离对象的创建和使用。这使您能够在不更改使用它们的类的情况下替换依赖类。...它是Jakarta EE的CDI规范的参考实现。自2.0版本以来,您可以在Java SE环境中直接使用它,而无需添加庞大的框架堆栈。 CDI 2.0是所有Jakarta EE 8应用服务器的一部分。...java org.jboss.weld.environment.se.StartMain 但是,在没有应用程序的情况下bootstrapping CDI容器并没有多大意义。...它告诉CDI容器在调用CoffeeAppStarter类的构造函数时注入CoffeeApp对象。...通过这样做,您可以在不更改任何代码的情况下替换依赖项,而且还可以减少业务逻辑中的重复的样板代码。

    1.2K10

    Java高级特性之泛型

    如果对这些特性不了解,不熟悉特性的应用场景,使用时又因为语法等原因困难重重,很难让人克服惰性去使用它们,所以身边总有一些同事,工作了很多年,却从没有用过 Java 的某些高级特性,写出的代码总是差那么一点儿感觉...这样,代码就会恶心在类型判断上了。不优雅的范围小了一点,并不能解决问题。...泛型指代一种参数类型,可以声明在类、方法和接口上。...我们最常把泛型声明在类上: class Generics { // 在类名后声明引入泛型类型 private T field; // 引入后可以将字段声明为泛型类型...// 泛型类在调用时需要声明一种精确类型 Generics sample = new Generics(); Long field = sample.getField

    76240

    Java泛型之类型擦除类型擦除参考资料

    本文首发于个人网站:Java阿杜 类型擦除 学过C++模板的,在使用Java泛型的时候,会感觉到有点不疑问,例如:(1)无法定义一个泛型数组、无法调用泛型参数对象中对应的方法(当然,通过extends...在Java诞生10年后,才想实现类似于C++模板的概念,即泛型; Java的类库是Java生态中非常宝贵的财富,必须保证向后兼容(即现有的代码和类文件依旧合法)和迁移兼容(泛化的代码和非泛化的代码可互相调用...Java泛型依赖编译器实现,只存在于编译期,JVM中没有泛型的概念;那么,编译器做了什么工作呢?...我们通过字节码进行观察,可以看出:(1)Holder4和Holder4Raw两个类的字节码完全相同;(2)在main函数的33、41和49行就是编译器插入的checkcast语句; public class...org.java.learn.generics.Holder4 { public org.java.learn.generics.Holder4(T, T, T); Code:

    62020

    详解泛型高级特性

    如果对这些特性不了解,不熟悉特性的应用场景,使用时又因为语法等原因困难重重,很难让人克服惰性去使用它们,所以身边总有一些同事,工作了很多年,却从没有用过 Java 的某些高级特性,写出的代码总是差那么一点儿感觉...这样,代码就会恶心在类型判断上了。不优雅的范围小了一点,并不能解决问题。...泛型指代一种参数类型,可以声明在类、方法和接口上。...最常把泛型声明在类上: class Generics { // 在类名后声明引入泛型类型 private T field; // 引入后可以将字段声明为泛型类型 public...= new String[2]; // 泛型方法的调用跟普通方法相同 Generics.quickSort(strArr, 0, 30 ); // 泛型类在调用时需要声明一种精确类型

    58110

    Quarkus中的依赖注入(DI)和aop编程(6)

    绑定到生命周期上下文的有状态对象的定义良好的生命周期,其中上下文集是可扩展的 复杂的类型安全的依赖项注入机制,包括在开发或部署时选择依赖项的能力,而无需进行冗长的配置 支持Java EE模块化和Java...EE组件体系结构-解决Java EE组件之间的依赖关系时要考虑Java EE应用程序的模块化结构 与统一表达语言(EL)集成,允许在JSF或JSP页面中直接使用任何上下文对象 装饰注入对象的能力 通过类型安全的拦截器绑定将拦截器与对象相关联的能力...这里不研究具体的规范协议,内容太多了,有兴趣的可以在上面的地址中翻阅,下面主要看看在Quarkus中,怎么使用的。...,只需要在切面类上将自定义的注解标注在类上即可,然后使用@AroundInvoke注解标注方法,被拦截到方法时,方法调用信息会自动注入到InvocationContext中。...使用时,将自定义的注解标注在类或者方法上即可 Bean列表接口 Quarkus在本地开发时,会自动注册HTTP GET- /quarkus/arc/beans接口,返回所有Bean的列表 结语 以上,是

    40940

    重点来了:事务一致性的深入研究&EJB的全生命周期 | 从开发角度看应用架构5

    有状态的EJB(对象)是通过JNDI调用或CDI注入在应用程序服务器内存中创建的,并且已准备好让其客户端调用其业务方法。...Ready: 无状态EJB(对象)通过JNDI调用或CDI注入在应用程序服务器内存中创建,并准备好让客户端调用其业务方法。 ? 3....Ready:单启动EJB(单个对象)在启动时或在CDI注入时在应用程序服务器内存中创建,并准备好让其客户端调用其业务方法。 由于在其生命周期内只有一个EJB实例,因此没有概念池。...事务属性可以用来控制执行UserService类方法的范围和上下文。 Java EE规范定义了六个事务属性。...我们接下来,查看Hello.java CDI注入的bean的class源码:PersonService.java 我们看到,此EJB已标记为@Stateless,但目前不包含任何事务管理。 ?

    87740

    JAVA CDI 学习(4) - @Alternative@Default@Any & Extension

    前面几节学习到的CDI内容,基本上都是hard-code,以硬编码的方式在代码里指定注入类型,这并非依赖注入的本意,依赖注入的优势之一在于“解耦”,这一节我们将学习如何利用配置来动态注入的类型及属性初始化...在不修改java源代码的前提下,仅通过配置文件beans.xml的修改,就动态切换了接口的实现类。...二、Extension 不仅注入的类型可以由配置文件来动态切换,也可以由配置文件来直接初始化注入对象的属性值(虽然我个人认为这种场景在实际开发中其实并不多见) 2.1 先来定义几个类: BaseDto.java...extends BaseDto> klass = instance.getClass(); 28 //yjm注:出于演示目的,这里仅反射了本类中声明的field,所以注入时,父类中的field...跟预期结果完全一样,不过正如文中指出的一样,父类的属性被忽略了,如果父类成员也需要初始化,需要大家自行修改XmlWrappedInjection类 最后附示例源代码:cdi-alternative-sample.zip

    2.1K100

    设计模式 | 结构型 | 代理模式

    代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。...优缺点 优点: 对客户端透明 可以进行生命周期的管理 即使对象还没准备好,代理类也可以工作 开闭原则,可以不对服务和客户端修改的情况下创建新代理 缺点: 代码变复杂 服务响应可能延迟 与其他模式的关系...", exception.getMessage()); } } ---- 实例 JDK java.lang.reflect.Proxy Proxy 提供用于创建动态代理类和实例的静态方法 java.rmi....* (RMI 远程方法调用) ... javax.inject.Inject (依赖注入器) CDI 托管 bean 实例本质上是一个自动生成类的可序列化代理实例,它扩展了原始支持 bean 类并通过公共方法将所有公共方法进一步委托给实际实例...} public void setSomeProperty(String someProperty) { ActualManagedBean instance = CDI.resolveItSomehow

    28820

    Java中的泛型(很细)

    引言 在Java编程世界中,泛型(Generics)是一个革命性的特性,它彻底改变了我们编写和组织代码的方式。...类型擦除:Java的泛型实现使用类型擦除,可能导致一些限制。 解决方案:了解类型擦除的工作原理,并在必要时使用反射或其他技术绕过限制。...实施方法: 在Repository和Service接口中使用泛型。 利用泛型实现通用的CRUD操作。 在依赖注入时使用泛型来确保类型安全。 遇到的挑战:需要在运行时保留泛型信息。...参考资源 官方文档: Java Generics Tutorial Java Language Specification - Generics 推荐书籍: "Java Generics and Collections...社区资源: Java Generics FAQ Baeldung Java Generics Tutorial 这些资源提供了从基础到高级的全面信息,可以帮助你深入理解Java泛型的各个方面。

    12910

    什么是 Java 的依赖注入,有哪些常见框架?

    Java的依赖注入(Dependency Injection,简称DI)是一种设计模式,旨在减少类之间的耦合性,通过外部管理对象之间的依赖关系。...依赖注入通过将依赖关系的创建和管理交给外部容器来实现,而不是在类内部直接创建依赖对象。...常见的Java依赖注入框架包括: Spring Framework:Spring是最流行的Java开发框架之一,提供了强大的依赖注入功能。...CDI(Contexts and Dependency Injection):CDI是Java EE 6规范中定义的依赖注入框架,它提供了更强大的依赖管理功能。...CDI可以通过注解标记需要注入的依赖关系,同时支持事件驱动和上下文管理。 Dagger:Dagger是一个基于编译时依赖注入的框架,具有高性能和稳定性。

    12010

    quarkus依赖注入之一:创建bean

    关于CDI 《 Contexts and Dependency Injection for Java 2.0》,简称CDI,该规范是对JSR-346的更新,quarkus对依赖注入的支持就是基于此规范实现的...从 2.0 版开始,CDI 面向 Java SE 和 Jakarta EE 平台,Java SE 中的 CDI 和 Jakarta EE 容器中的 CDI 共享core CDI 中定义的特性。...继续看spring官方的demo,如下所示,用Component注解修饰在类上,spring就会实例化MyComponent对象并注册在bean容器中,需要用此bean的时候用Autowired注解就可以注入了...和HelloServiceImpl.java都是普通的java接口和类,与quarkus没有任何关系 下面的代码演示了用注解修饰方法,使得quarkus调用此方法,将返回值作为bean实例注册到容器中,...HelloService接口的实例时,可以控制所有细节(构造方法的参数、或者从多个HelloService实现类中选择一个),没错,在SpringBoot的Configuration类中咱们也是这样做的

    1.1K50

    干货分享:基于JBoss的七个Java应用场景

    RestfulClient:包含一个将HTTP请求发送到部署到JBoss EAP服务器的RESTful服务的类。 客户端在独立于JBoss EAP服务器的Java VM中运行。...在部分中,RESTEasy参数选项用于指示容器使用/ rest-service作为URI上的前缀。 此路径元素在资源类指定的客户路径元素之前使用。...,我们模拟三个服务器:host0、host1、host2(通过使用不同的端口,在一个虚拟机上模拟多个host) host0上部署Domain Controller,Domain Controller不包含任何应用...七、CDI的实战 CDI的全称是:Contexts and Dependency Injection(CDI)。 本实验是通过CDI的方式,创建一个JSF架构的应用。...该文件的作用是让 CDI激活应用。 接下来,运行应用: ? ? 然后通过浏览器访问应用: ? 在页面输入一些数值: ?

    2.3K50

    quarkus依赖注入之十:学习和改变bean懒加载规则

    规范下的懒加载规则: 常规作用域的bean(例如ApplicationScoped、RequestScoped),在注入时,实例化的是其代理类,而真实类的实例化发生在bean方法被首次调用的时候 伪作用域的...bean(Dependent和Singleton),在注入时就会实例化 quarkus也遵循此规则,接下来编码验证 编码验证懒加载 为了验证bean的懒加载,接下来会写这样一些代码 NormalApplicationScoped.java...:作用域是ApplicationScoped的bean,其构造方法中打印日志,带有自己的类名 NormalSingleton.java:作用域是Singleton的bean,其构造方法中打印日志,带有自己的类名...ChangeLazyLogicTest.java:这是个单元测试类,里面注入了NormalApplicationScoped和NormalSingleton的bean,在其ping方法中依次调用上面两个...的代理类会实例化 然后,在ChangeLazyLogicTest#ping方法中,由于调用了NormalApplicationScoped的方法,会导致NormalApplicationScoped的实例化

    60520
    领券