JBoss AS 7 EJB3池配置

现在,AS 7.0.1已经发布,让我们看一下可用的EJB3新功能。 就像我在上一篇文章中提到的那样 ,AS 7.0.1现在允许您为无状态会话bean和MDB配置池。

当前,我们允许在子系统级别配置池,这意味着该池将适用于服务器上部署的所有Bean。 在一些即将发布的版本中,我们将允许在单个部署和单个Bean级别上配置池。 现在,让我们看看子系统级别的配置。

在我以前的文章中,我提到AS 7.0.1有2个发行版。 一个纯粹是webprofile,另一个(称为“ everything”)具有其他EE功能,例如对MDB的支持。 在本文中,我将使用“ Everything”发行版和JBOSS_HOME / standalone / configurations / standalone-preview.xml来解释配置。

在开始配置之前,对于不熟悉AS7的那些人,让我们看看如何使用特定的配置文件启动服务器。 首先,下载服务器,然后将二进制文件解压缩到您选择的文件夹中。 然后从命令提示符下,移至安装的“ bin”文件夹。 在此文件夹中,您将看到standalone.bat / standalone.sh和domain.bat / domain.sh。 在本文中,我们将专注于独立服务器,但是对于域配置中的EJB3子系统也是如此。

启动独立服务器

因此,让我们启动服务器。 我在Linux系统上,因此我将使用standalone.sh文件。 在Windows上,您必须使用standalone.bat。

jpai@jpai-laptop:bin$ ./standalone.sh

在大约几秒钟内,您将看到服务器已启动并正在运行:

jpai@jpai-laptop:bin$ ./standalone.sh  =========================================================================  JBoss Bootstrap Environment  JBOSS_HOME: /NotBackedUp/jpai/jboss-as-7.0.1.Final  JAVA: /opt/Java/SunJava-6/jdk1.6.0_21//bin/java  JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman  =========================================================================  09:30:31,537 INFO [org.jboss.modules] JBoss Modules version 1.0.1.GA  09:30:31,765 INFO [org.jboss.msc] JBoss MSC version 1.0.0.GA  09:30:31,818 INFO [org.jboss.as] JBoss AS 7.0.1.Final "Zap" starting  09:30:32,618 WARN [org.jboss.as] No security realm defined for native management service, all access will be unrestricted.  09:30:32,693 INFO [org.jboss.as] creating http management service using network interface (management) port (9990)  09:30:32,694 WARN [org.jboss.as] No security realm defined for http management service, all access will be unrestricted.  09:30:32,703 INFO [org.jboss.as.logging] Removing bootstrap log handlers  09:30:32,720 INFO [org.jboss.as.connector.subsystems.datasources] (Controller Boot Thread) Deploying JDBC-compliant driver class org.h2.Driver (version 1.2)  09:30:32,739 INFO [org.jboss.as.clustering.infinispan.subsystem] (Controller Boot Thread) Activating Infinispan subsystem.  09:30:32,905 INFO [org.jboss.as.naming] (Controller Boot Thread) Activating Naming Subsystem  09:30:32,915 INFO [org.jboss.as.naming] (MSC service thread 1-1) Starting Naming Service  09:30:32,918 INFO [org.jboss.as.osgi] (Controller Boot Thread) Activating OSGi Subsystem  09:30:32,940 INFO [org.jboss.as.security] (Controller Boot Thread) Activating Security Subsystem  09:30:32,957 INFO [org.jboss.remoting] (MSC service thread 1-4) JBoss Remoting version 3.2.0.Beta2  09:30:32,968 INFO [org.xnio] (MSC service thread 1-4) XNIO Version 3.0.0.Beta3  09:30:32,982 INFO [org.xnio.nio] (MSC service thread 1-4) XNIO NIO Implementation Version 3.0.0.Beta3  09:30:33,182 INFO [org.apache.catalina.core.AprLifecycleListener] (MSC service thread 1-4) The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/Java/SunJava-6/jdk1.6.0_21/jre/lib/i386/server:/opt/Java/SunJava-6/jdk1.6.0_21/jre/lib/i386:/opt/Java/SunJava-6/jdk1.6.0_21/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib  09:30:33,203 INFO [org.jboss.as.jmx.JMXConnectorService] (MSC service thread 1-2) Starting remote JMX connector  09:30:33,209 INFO [org.jboss.as.remoting] (MSC service thread 1-1) Listening on /127.0.0.1:9999  09:30:33,232 INFO [org.jboss.as.ee] (Controller Boot Thread) Activating EE subsystem  09:30:33,390 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-4) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080  09:30:33,512 INFO [org.jboss.as.connector] (MSC service thread 1-1) Starting JCA Subsystem (JBoss IronJacamar 1.0.3.Final)  09:30:33,554 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-4) Bound data source [java:jboss/datasources/ExampleDS]  09:30:33,919 INFO [org.jboss.as.deployment] (MSC service thread 1-4) Started FileSystemDeploymentService for directory /NotBackedUp/jpai/jboss-as-7.0.1.Final/standalone/deployments  09:30:33,931 INFO [org.jboss.as] (Controller Boot Thread) JBoss AS 7.0.1.Final "Zap" started in 2636ms - Started 93 of 148 services (55 services are passive or on-demand)

使用其他服务器配置文件

默认情况下,standalone.sh命令使用名为“ standalone.xml”的配置文件,该文件位于JBOSS_HOME / standalone / configuration文件夹中。 该命令还允许您指定其他配置文件以启动服务器。 如前所述,我将在本文中使用standalone-preview.xml。 因此,让我们使用standalone-preview.xml启动服务器。

jpai@jpai-laptop:bin$ ./standalone.sh -server-config=standalone-preview.xml

如您所见,我们传递了-server-config参数,其中standalone-preview.xml作为参数值。 默认情况下,在JBOSS_HOME / standalone / configuration文件夹中查找文件。 服务器在大约3.5秒内启动:

09:35:59,694 INFO  [org.jboss.as] (Controller Boot Thread) JBoss AS 7.0.1.Final "Zap" started in 3586ms - Started 125 of 184 services (59 services are passive or on-demand)

EJB3子系统配置

现在,我们已经了解了如何启动服务器,让我们继续查看配置。 在standalone-preview.xml中,查找如下所示的EJB3子系统:

<subsystem xmlns="urn:jboss:domain:ejb3:1.1" >  <timer-service>  <thread-pool core-threads="1" max-threads="4" />  <data-store path="timer-service-data" relative-to="jboss.server.data.dir" />  </timer-service>  <!-- EJB3 pools -->  <pools>  <bean-instance-pools>  <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"  instance-acquisition-timeout-unit="MINUTES"/>  <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"  instance-acquisition-timeout-unit="MINUTES"/>  </bean-instance-pools>  </pools>  <!-- Default MDB configurations -->  <mdb>  <resource-adapter-ref resource-adapter-name="hornetq-ra"/>  <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>  </mdb>  <!-- Session bean configurations -->  <session-bean>  <stateless>  <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>  </stateless>  </session-bean>  </subsystem>

这是EJB3子系统级别配置所在的位置。 让我们快速看一下其中的一些。 第一个配置是针对EJB3定时器服务的。 在本文中,我们不会对此进行过多的介绍。

EJB3池

下一个配置是“池”:

<!-- EJB3 pools -->  <pools>  <bean-instance-pools>  <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"  instance-acquisition-timeout-unit="MINUTES"/>  <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"  instance-acquisition-timeout-unit="MINUTES"/>  </bean-instance-pools>  </pools>

在这里配置EJB3使用的池。 在“ pools”元素中,可以使用“ bean-instance-pools”元素配置bean实例池。 在AS 7.0.1中,我们仅支持“ strict-max-pool”作为bean实例池。

严格的最大池允许您配置池的最大上限。 在运行时,当池中的所有bean实例都在使用中并且新的bean调用请求进入时,池将阻塞该请求,直到下一个bean实例可用或超时(在instance-acquisition-timeout中设置)为止。 每个池都有一个唯一的名称。 上面的配置显示2个严格的最大池,分别名为“ slsb-strict-max-pool”和“ mdb-strict-max-pool”。 您可以在其中添加新的严格最大池,并为其选择唯一的名称。 您可以手动编辑xml(服务器关闭时)以添加新的严格最大池,也可以使用AS7随附的命令行客户端(CLI)。 在本文后面的内容中,我们将介绍如何使用CLI。

消息驱动的Bean配置

现在,让我们转到该EJB3子系统中的下一个配置:

<!-- Default MDB configurations -->  <mdb>  <resource-adapter-ref resource-adapter-name="hornetq-ra"/>  <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>  </mdb>

本节使用默认值配置MDB。

MDB的默认资源适配器

“ resource-adapter-ref”元素指定MDB将使用的默认资源适配器。 在此示例中,它表明我们使用hornetq-ra作为默认RA。


MDB的默认bean实例池

bean-instance-pool-ref充当对bean-instance-pool的引用,它将用作所有MDB的默认池配置。 在此示例中,我们看到它指向“ mdb-strict-max-pool”,我们在前面的部分中看到它被配置为严格的最大池,其中池的上限为20。 如果要更改MDB的默认bean实例池,则只需将bean-instance-pool-ref元素的pool-name属性更改为其他可用的bean实例池。 您可以通过直接编辑xml(在服务器关闭时)来执行此操作,也可以使用CLI来执行此操作(稍后将看到如何完成此操作)。

无状态会话Bean配置

转到EJB3配置的下一部分,您将看到:

<!-- Session bean configurations -->  <session-bean>  <stateless>  <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>  </stateless>  </session-bean>

在这里配置会话Bean的默认值。 就像我们在MDB中看到的一样,以上配置显示了如何为无状态会话Bean配置默认Bean实例池。 在这里,我们看到“ slsb-strict-max-pool”被用作默认值。 就像MDB一样,您可以通过直接在xml中或通过CLI更改bean-instance-pool-ref元素的pool-name属性,来更改无状态会话bean的默认bean实例池。

使用命令行客户端(CLI)

AS7带有功能强大的命令行客户端。 查看CLI上的AS7文档以获取快速参考。 命令行客户端工具是使用JBOSS_HOME / bin文件夹中的jboss-admin.sh/jboss-admin.bat脚本启动的:

jpai@jpai-laptop:bin$ ./jboss-admin.sh

在运行该脚本时,您会注意到以下消息,该消息使您可以连接到服务器:

You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.  [disconnected /]

CLI需要运行中的服务器才能连接。 因此,如果您尚未启动服务器,请先启动它(如上一节中所述)。 现在,让我们通过命令行连接到服务器:

[disconnected /] connect  Connected to standalone controller at localhost:9999  [standalone@localhost:9999 /]

因此,CLI现在已连接到正在9999端口上监听localhost的服务器。可以为CLI传递不同的主机名和端口以进行连接,但现在就不要再讨论了。

从CLI连接到服务器后,现在就可以从CLI运行操作来管理正在运行的服务器。 现在让我们看一下如何管理EJB3子系统的bean实例池配置。

从CLI创建一个新的strict max bean实例池

从CLI连接到服务器后,可以按以下方式创建一个新的strict max bean实例池:

[standalone@localhost:9999 /] /subsystem=ejb3/strict-max-bean-instance-pool=new-pool:add

我建议您阅读CLI文档,以更好地了解该命令。 但是,让我简要地分解上面的命令并解释每个部分的作用。

需要注意的重要一点是,您不必在CLI上键入所有这些内容。 CLI提供了非常非常有用的制表符完成功能! 因此,输入/ subsystem =并按下选项卡将显示可用的选项。

了解Bean实例池创建命令

从CLI文档:

操作请求基本上由三部分组成:地址,操作名称和一组可选参数。

操作请求的正式规范为:

[/node-type=node-name (/node-type=node-name)*] : operation-name [( [parameter-name=parameter-value (,parameter-name=parameter-value)*] )]

在此示例中,我们的目标是创建一个新的strict max bean实例池。 这可以通过发出“添加”操作来完成。 在我上面发布的命令中,请注意最后使用“:add”。 操作始终以“:”开头,后跟操作名称。 因此,在上面的示例中,我们正在执行“:add”操作。

现在,必须在特定的“资源”上执行“添加”操作。 即服务器必须知道要添加什么以及在哪里。 这称为寻址。 为了运行操作,需要提供一个地址(不要将此与服务器的主机名/端口“地址”混淆,这是完全不同的)。 用AS7管理术语来说,服务器由可管理的“资源”组成,每个资源都有其自己的地址。 例如,可以解决组成服务器配置的每个子系统。 要从命令行客户端引用ejb3子系统,请使用/ subsystem = ejb3(可以使用制表符补全)。

假设我们正在创建的新池将被命名为“新池”。 因此,最终需要执行“添加”操作的地址如下所示:

/subsystem=ejb3/strict-max-bean-instance-pool=new-pool

最后,我们将地址和操作结合起来并从CLI运行它

[standalone@localhost:9999 /] /subsystem=ejb3/strict-max-bean-instance-pool=new-pool:add

操作成功完成后,将显示以下输出:

[standalone@localhost:9999 /] /subsystem=ejb3/strict-max-bean-instance-pool=new-pool:add  {"outcome" => "success"}

所有管理操作都保留在服务器配置文件中。 在我们的例子中,它是standalone-preview.xml,因为这是我们用来启动服务器的文件。

运行该操作之后,您现在可以在文本编辑器中打开standalone-preview.xml并注意,已将名为“ new-pool”的新的严格的最大bean实例池添加到“ bean-instance-pools”中:

<pools>  <bean-instance-pools>  <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>  <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>  <strict-max-pool name="new-pool"/>  </bean-instance-pools>  </pools>

尚未设置max-pool-size和其他属性,将使用默认值。 这是因为在运行操作时,我们没有为这些属性指定任何值。 现在,让我们尝试发出命令来创建一个具有某些特定属性值的池(名为“ take2”)。 现在,该命令将如下所示:

[standalone@localhost:9999 /] /subsystem=ejb3/strict-max-bean-instance-pool=take2:add(max-pool-size=15,timeout=2)

因此,上面的命令与上一个命令相似,除了池的名称为“ take2”,并且我们另外指定了最大池大小为15和超时为2并将timeout-unit为默认值。 请注意,编写该命令时可以使用制表符补全。 运行该命令时,您将看到以下输出:

[standalone@localhost:9999 /] /subsystem=ejb3/strict-max-bean-instance-pool=take2:add(max-pool-size=15,timeout=2)  {"outcome" => "success"}

现在,standalone-preview.xml如下所示:

<pools>  <bean-instance-pools>  <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>  <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>  <strict-max-pool name="new-pool"/>  <strict-max-pool name="take2" max-pool-size="15" instance-acquisition-timeout="2"/>  </bean-instance-pools>  </pools>

请注意,“ take2”池的max-pool-size和instance-acquisition-timeout值设置为我们在CLI上指定的值。

这样便可以通过CLI创建新的bean实例池。

设置/更改MDB和SLSB使用的默认bean实例池

在上一节中,我们看到了如何创建一个新的bean实例池。 现在,如果我们希望这个新池成为MDB和/或SLSB的默认池配置,那么我们可以使用CLI来做到这一点。

首先让我们看看如何对MDB进行操作:

[standalone@localhost:9999 /] /subsystem=ejb3:write-attribute(name=default-mdb-instance-pool, value=take2)

因此,我们正在/ subsystem = ejb3地址上执行“写属性”操作,以写入名为“ default-mdb-instance-pool”的属性,其值为“ take2”。 有效地,此命令将从“ mdb-strict-max-pool”更改默认的MDB bean实例池(请记住,我们之前在standalone-preview.xml中的bean-instance-pool-ref部分中看到了这一点。 MDB)到我们创建的“ take2”池。 运行此命令将显示以下输出

[standalone@localhost:9999 /] /subsystem=ejb3:write-attribute(name=default-mdb-instance-pool, value=take2)  {"outcome" => "success"}

现在,如果在文本编辑器中打开standalone-preview.xml,您将注意到更改已完成– MDB配置现在将“ take2”用作所有MDB的默认池配置(此后)。

<mdb>  <resource-adapter-ref resource-adapter-name="hornetq-ra"/>  <bean-instance-pool-ref pool-name="take2"/>  </mdb>

我们也可以对无状态会话Bean配置执行相同的操作。 该命令是:

[standalone@localhost:9999 /] /subsystem=ejb3:write-attribute(name=default-slsb-instance-pool, value=new-pool)  {"outcome" => "success"}

在这里,我们将default-slsb-instance-pool设置为我们先前创建的“ new-pool”。 现在,standalone-preview.xml文件将如下所示:

<session-bean>  <stateless>  <bean-instance-pool-ref pool-name="new-pool"/>  </stateless>  </session-bean>

就是这样了! 现在,我们已经使用CLI来配置/管理EJB3池。

禁用MDB和无状态会话Bean的池

我们还允许为MDB和SLSB禁用池。 但是,并不总是建议这样做,因为它可能会影响性能。 如果作为开发人员,您知道您的bean在构造期间不会太重(即,在构造函数中没有任何负担,在@PostConstruct中没有任何负担),那么有时它有助于禁用对bean的合并。 当前,唯一的方法是从EJB3子系统配置中的和/或元素中删除该元素。 目前,我们尚无法通过CLI进行此操作,也无法在每个部署或每个bean级别上指定此方法。

因此,如果您知道禁用池化将使您受益,那么这就是禁用它的方法。

摘要

我没想到这个博客会花那么长的时间。 但是由于其中大多数是AS7中的新功能,因此值得编写。 因此,在此博客中,我们了解了如何配置EJB3 bean实例池以及在何处配置EJB3实例池,如何创建新的bean实例池,如何为MDB和无状态会话bean更改默认的bean实例池。 我们还看到了如何使用AS7中的CLI来完成所有这些工作。

参考: JBoss AS 7.0.1 –从我们的JCG合作伙伴 Jaikirian的“ Jaitech WriteUps”博客中 配置EJB3池 。

相关文章 :
  • JBoss AS 7.0.2“ Arc”发布–使用绑定选项
  • 带有Spring和Maven教程的JAX–WS
  • JBoss 4.2.x Spring 3 JPA Hibernate教程
  • 调试生产服务器– Eclipse和JBoss展示
  • Java EE6 CDI,命名组件和限定符
  • Java教程和Android教程列表

翻译自: https://www.javacodegeeks.com/2011/11/jboss-as-7-ejb3-pools-configuration.html

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

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

相关文章

iOS开发网络篇—文件的上传

说明&#xff1a;文件上传使用的时POST请求&#xff0c;通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。 由于过程较为复杂&#xff0c;因此本文只贴出部分关键代码。 主控制器的关键代码&#xff1a; YYViewController.m 1 #import…

var模型的matlab实现_Eviews中VAR模型的操作、脉冲响应分析和方差分解的实现

打开文件所在位置&#xff0c;获取数据。选中变量右键open打开var操作EViews,在VAR对象的工具栏中选择“View”|“Lag Structure”|“AR Roots Table/ AR Roots Graph”选项&#xff0c;得到AR根的表和图。结果显示&#xff1a;VAR模型所有根模的倒数都小于1&#xff0c;即都在…

一个程序员的爱情表白书

我能抽象出整个世界 但是我不能抽象出你 因为你在我心中是那么的具体 所以我的世界并不完整 我可以重载甚至覆盖这个世界里的任何一种方法 但是我却不能重载对你的思念 也许命中注定了 你在我的世界里永远的烙上了静态的属性 而我不慎调用了爱你这个方法 当我义无返顾的…

结构体、枚举类型

一、结构体 结构体&#xff1a;就是一个自定义的集合&#xff0c;里面可以放各种类型的元素&#xff0c;用法大体跟集合一样。 1、定义的方法&#xff1a; struct student { public int nianling; public int fenshu; public string name; public string sex; public int sum; …

NXP KW38开发杂记(一)MCUXpress 运行进入NMI_Handler

这里是大佬的具体分析过程&#xff0c;感兴趣可以看看 https://www.cnblogs.com/wenhao-Web/p/13618703.html 解决办法&#xff1a; 在startup_mkw38a4.c文件里&#xff0c;定位到Flash_Config {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE}; 把最后一个参数0xFFFFFFFE改…

25个让Java程序员更高效的Eclipse插件

Eclipse提供了一个可扩展插件的开发系统。这就使得Eclipse在运行系统之上可以实现各种功能。这些插件也不同于其他的应用&#xff08;插件的功能是最难用代码实现的&#xff09;。拥有合适的Eclipse插件是非常重要的&#xff0c;因为它们能让Java开发者们无缝的开发基于J2EE和服…

NXP KW38蓝牙开发(一)入门第一课:官网蓝牙广播和连接例程,NMI禁止

首先要下载开发使用的IDE&#xff1a;MCUXpresso IDE 下载链接&#xff1a; 进入nxp的官网&#xff0c;搜索KW38 向下翻看&#xff0c;找到Xpresso&#xff0c;点击进入 习惯使用IAR开发的同学也可以下IAR版本&#xff0c;这里以Xpresso为例 下载好后安装&#xff0c;一路默…

rough and crude

rough:物理上的粗糙或者说不平&#xff0c;高尔夫球场的生草区 crude:原始、未经加工的那种粗&#xff0c;即没有精加工转载于:https://www.cnblogs.com/dgyw/p/5767078.html

views 多个文件夹 netcore_.NET Core中的使用Kestrel服务器理解及应用

Kestrel是一个基于libuv的跨平台.NET Core web服务器&#xff0c;libuv是一个跨平台的异步I/O库。ASP.NET Core模板项目使用Kestrel作为默认的web服务器。Kestrel支持以下功能&#xff1a;HTTPS用于启用不透明升级的WebSockets位于Nginx之后的高性能Unix socketsKestrel 被.NET…

使用PowerMock测试对象的内部状态

大多数单元测试都集中于测试对象的行为以证明其有效。 这可以通过编写一个JUnit测试来实现&#xff0c;该测试调用对象的公共方法&#xff0c;然后测试这些调用的返回值是否与先前定义的一组期望值匹配。 这是一种非常常见且成功的技术。 但是&#xff0c;不应忘记对象也显示状…

布局

1&#xff09;ul li 把ul宽度设置大一点&#xff0c;然后overflowhidden;&#xff08;最好不要嵌套使用&#xff0c;原因看清除浮动方法&#xff09;&#xff0c;然后外面必须有包裹的div壳&#xff0c;div壳的宽度就按设计稿来&#xff0c;这样就避免了需要给最后一个li设置m…

10个职场故事,让人不得不看

1、强盗师徒 有一次&#xff0c;一个老强盗带着徒弟去抢劫银行&#xff0c;被警方追捕。两人狂逃&#xff0c;差点儿连裤子都跑掉了。好不容易甩掉了警察&#xff0c;两人上气不接下气&#xff0c;瘫倒在地上。 良久&#xff0c;惊魂稍定&#xff0c;徒弟说:“师父啊师父&#…

NXP UWB NCJ29D5开发(一)环境搭建

1、从NXP的共享账号下载资料 共享账号需要找对接的NXP人员拿到&#xff0c;他会把资料分享到这个账号&#xff0c;在这个账号里面可以下载 进入nxp官网&#xff0c;登录后点击my nxp&#xff0c;选择Software Licensing and Support 进入后接着选择View accounts 进入后选择…

西瓜创客python编程进阶收费_西瓜创客和编程猫有什么不同?哪个更值得报名?...

看情况来决定即可&#xff0c;在课程内容上其实出入我觉得不是很大&#xff0c;重点是教学服务、师资、授课模式等&#xff0c;单纯我自己的角度来说&#xff0c;我个人偏向于西瓜创客多一点&#xff0c;他们家的课程更具有趣味性&#xff0c;游戏化教学&#xff0c;融入卡通人…

Stack的三种含义

作者&#xff1a;阮一峰 学习编程的时候&#xff0c;经常会看到stack这个词&#xff0c;它的中文名字叫做”栈”。 理解这个概念&#xff0c;对于理解程序的运行至关重要。容易混淆的是&#xff0c;这个词其实有三种含义&#xff0c;适用于不同的场合&#xff0c;必须加以区分。…

NXP UWB NCJ29D5开发(二)BlinkyLed例程

路径为UWB\NCJ29D5\NCJ29D5_CAS_Examples_v1.4\onic\BlinkyLed\toolsupport\keil 例程怎么来的可以看看上一篇NXP UWB NCJ29D5开发&#xff08;一&#xff09;环境搭建 1、 //系统选择外部晶振&#xff0c;时钟频率为55.2Mhz phscaAppHal_Init(PHSCA_APPHAL_XO_CLOCK_SOURCE_…

你要看透的56条人生哲理

当你踌躇不前、站在人生十字路口时候&#xff0c;这56条哲理或许能助你一臂之力&#xff01;      1&#xff0e;拿得起&#xff0c;放得下      我们每个人都有很多“宝贝”&#xff0c;但你不可能什么都得到&#xff0c;在某些时候一定要学会拿得起&#xff0c;放得下…

使用Spring和Java泛型简化数据访问层

1.概述 本文将着重于通过对系统中的所有实体使用单个通用的数据访问对象来简化DAO层 &#xff0c;这将导致优雅的数据访问 &#xff0c;而不会造成不必要的混乱或冗长。 2. Hibernate和JPA DAO 大多数生产代码库都有某种DAO层。 通常&#xff0c;实现范围从没有抽象基类的多个…

强肝保肝养肝4大食物

“强肝的食物,保肝的食物有哪些,养肝的食物有哪些”如果您对这些食物不了解不明白。那就看看专家为您推荐的四款强肝保肝养肝的食物。荔枝&#xff08;供图/华盖&#xff09;一、是荔枝&#xff0c;荔枝可以保肝&#xff0c;对肝有好处根据《本草纲目》记载荔枝有强肝健胰的效果…

如何查看注解实现_该怎么运用注解呢?Java团队元老有话说

来源 | 异步 15讲能学好诞生24年的JAVA吗&#xff1f;你当然会感到怀疑&#xff0c;众所周知&#xff0c;在技术向的IT论坛上&#xff0c;“如何在十天之内快速掌握好Java&#xff1f;”这类问题&#xff0c;往往会招来嘲笑。来源于知乎但在当下&#xff0c;5分钟能看完一部电影…