小编Dav*_*ave的帖子

你什么时候会使用企业服务总线和像 Apache Camel 这样的集成框架?

我试图通过阅读这篇文章来解决何时使用 Apache Camel 是合适的还是不合适的 - https://dzone.com/articles/when-use-apache-camel。文章中提到,在服务数量较少的情况下,使用Camel这样的集成框架可能会有些矫枉过正,这是有道理的。但是我被这句话搞糊涂了

尽管 FuseSource 提供商业支持,但我不会将 Apache Camel 用于非常大的集成项目。在大多数情况下,ESB 是完成这项工作的正确工具。它提供了许多附加功能,例如 BPM 或 BAM。当然,您也可以使用多个单一的框架或产品并“创建”您自己的 ESB,但这是浪费时间和金钱(在我看来)。

这是因为集成框架缺少 ESB 提供的组件吗?如果有,那些是什么?

esb apache-camel fuseesb

1
推荐指数
1
解决办法
371
查看次数

如何仅在字符串的开头/结尾替换非字母数字的字符?

我正在使用Python 3.7。我有以下替换单词中的非字母数字字符(将函数应用于字符串数组)的方法...

words = map(lambda x: re.sub(r'\W+', '', x), long_words)
Run Code Online (Sandbox Code Playgroud)

我将如何修改上述内容,以便仅在单词的开头和结尾替换字母数字字符?也就是说,数组中的单词看起来像

($abc-fff%%-)
Run Code Online (Sandbox Code Playgroud)

会成为

 abc-fff
Run Code Online (Sandbox Code Playgroud)

现在,它变成了

 abcfff
Run Code Online (Sandbox Code Playgroud)

python regex python-3.x

1
推荐指数
1
解决办法
50
查看次数

如何更改 Docker MySql 实例运行的默认端口?

我正在使用 docker-compose 版本 1.25.2。我想构建一个包含 MySql 5.7 数据库的 docker 映像,但我想更改 MySql 侦听 3406 的默认端口。所以我构建了这个 docker-compose.yml 文件...

version: '3.3'

services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'maps_data'
      # So you don't have to use root, but you can if you like
      MYSQL_USER: 'myuser'
      # You can use whatever password you like
      MYSQL_PASSWORD: 'password'
      # Password for root access
      MYSQL_ROOT_PASSWORD: 'password'
    ports:
      # <Port exposed> : < MySQL Port running inside container>
      - '3406:3406'
    expose:
      # Opens port 3406 on the container …
Run Code Online (Sandbox Code Playgroud)

mysql port docker docker-compose

1
推荐指数
1
解决办法
1万
查看次数

如何对 Django 模型强制执行 ManyToMany Blank=False 约束?

我正在使用 Django 3 和 Python 3.8。我有以下模型,请注意“类型”ManyToMany 字段,其中我将“空白”设置为 False。

class Coop(models.Model):
    objects = CoopManager()
    name = models.CharField(max_length=250, null=False)
    types = models.ManyToManyField(CoopType, blank=False)
    addresses = models.ManyToManyField(Address)
    enabled = models.BooleanField(default=True, null=False)
    phone = models.ForeignKey(ContactMethod, on_delete=models.CASCADE, null=True, related_name='contact_phone')
    email = models.ForeignKey(ContactMethod, on_delete=models.CASCADE, null=True, related_name='contact_email')
    web_site = models.TextField()
Run Code Online (Sandbox Code Playgroud)

我想验证如果将该字段留空会发生验证错误,所以我有

  @pytest.mark.django_db
    def test_coop_create_with_no_types(self):
        """ Verify can't create coop if no  """    
        coop = CoopFactory.create(types=[])
        self.assertIsNotNone(coop)
        self.assertNone( coop.id )
Run Code Online (Sandbox Code Playgroud)

并使用以下工厂(带有 FactoryBoy)来构建模型

class CoopFactory(factory.DjangoModelFactory):
    """
        Define Coop Factory
    """
    class Meta:
        model = Coop

    name = "test model" …
Run Code Online (Sandbox Code Playgroud)

django django-models django-validation python-3.x factory-boy

1
推荐指数
1
解决办法
2910
查看次数

如何在日志消息中添加当前日期和时间前缀?

我正在使用 Python 3.9 和 Django 3.2。我在 settings.py 文件中配置了日志记录

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'INFO',
    },
}
Run Code Online (Sandbox Code Playgroud)

当我登录我的一门课程时,我会这样做

import logging
...
class TransactionService:
    def __init__(self):
        self._logger = logging.getLogger(__name__)


    def my_method(self, arg1, arg2):
            ...
        self._logger.info("Doing some logging here.")
      

  
Run Code Online (Sandbox Code Playgroud)

如何配置记录器,以便在打印消息时以当前日期和时间为前缀?

python django logging django-3.0 python-3.9

1
推荐指数
1
解决办法
1136
查看次数

在命令行上执行 perl 搜索和替换时,如何小写匹配的标记?

我有一个文件,其中包含以下行

\n
TEST=value\n
Run Code Online (Sandbox Code Playgroud)\n

我想进行搜索并替换,以便将第一个标记替换为其小写等效项。所以上面的内容会被转化为

\n
prefix/test \xe2\x80\x94output value\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试了下面的

\n
perl -pi -e \xe2\x80\x99s/(.*)=(.*)/prefix\\/lc($1) \xe2\x80\x94output $2/g' .env\n
Run Code Online (Sandbox Code Playgroud)\n

但显然 \xe2\x80\x9clc\xe2\x80\x9d 正在按字面解释,因为结果是

\n
prefix/lc(TEST) \xe2\x80\x94output value\n
Run Code Online (Sandbox Code Playgroud)\n

regex perl search replace lowercase

1
推荐指数
1
解决办法
193
查看次数

GWT:如何将内容集中在面板中?

我正在使用GWT 2.4.我有一些简单的内容...

    final Image ajaxImage = new Image("loading.gif");
    final Grid grid = new Grid(1, 2); 
    grid.setText(0, 0, "Loading...");
    grid.setWidget(0, 1, ajaxImage);
    this.container = new FlowPanel();
    this.container.add(grid);
    rootPanel = new SimplePanel();
    rootPanel.add(this.container);
Run Code Online (Sandbox Code Playgroud)

我希望这个内容在包含面板中水平和垂直居中,如果重要的话,它是一个FlowPanel.我怎么做?

谢谢, - 戴夫

gwt

0
推荐指数
1
解决办法
9309
查看次数

使用MySQL 5.1配置Hibernate 4时遇到问题

有没有人有一个成功的hibernate.cfg.xml配置文件的例子,他们使用Hibernate 4和MySQL 5.1?我有一个Maven(v3.0.3)Web项目,当我运行我的JUnit测试时,测试失败,异常,即使表,USERS存在...

org.hibernate.AnnotationException: @org.hibernate.annotations.Table references an unknown table: USERS
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:875)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:710)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3406)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3360)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1334)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
    at com.myco.eventmaven.dao.UsersDaoImpl.&lt;init&gt;(UsersDaoImpl.java:27)
    at com.myco.eventmaven.dao.UsersDaoImplTest.setUpStaticVars(UsersDaoImplTest.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Run Code Online (Sandbox Code Playgroud)

这是我的hibernate.cfg.xml文件...

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN" …
Run Code Online (Sandbox Code Playgroud)

java mysql junit hibernate

0
推荐指数
1
解决办法
3770
查看次数

Liquibase:如何导出自上次导入以来的更改?

我正在使用Liquibase 2.0.5.我有以下过程:

  1. 将Liquibase更改导出为XML文件.
  2. 登录数据库并运行一些db命令(例如ALTER TABLE ...)
  3. 将步骤2中所做的更改导出为Liquibase变更集.

我的问题是,我该如何做第3步?我使用以下脚本来执行第1步...

/opt/liquibase/liquibase --driver=com.mysql.jdbc.Driver \
  --classpath=~/.m2/repository//mysql/mysql-connector-java/5.1.15/mysql-connector-java-5.1.15.jar \
  --changeLogFile=~/db.changelog.xml \
  --url="jdbc:mysql://localhost:3306/db" \
  --username=user \
  --password=pass \
  generateChangeLog
Run Code Online (Sandbox Code Playgroud)

database liquibase

0
推荐指数
1
解决办法
1178
查看次数

如何截断MySQL数据库中的所有数据?

我在Mac 10.7.5上使用MySql 5.5.从shell(我正在使用bash),我希望能够运行命令o截断所有表中的数据.另外,我想输入一个不会提示我输入密码的命令.我试过这个,我在另一个SO帖子上找到了,但没有骰子.什么是shell命令我可以用来截断所有数据库表数据?

mysql -umyuser -p -e 'SET FOREIGN_KEY_CHECKS = 0; show tables' my_db | while read table; do mysql -e -umyuser -p "truncate table $table" my_db; done
Enter password: 

mysql  Ver 14.14 Distrib 5.5.25, for osx10.6 (i386) using readline 5.1
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Usage: mysql [OPTIONS] [database]
  -?, --help          Display this …
Run Code Online (Sandbox Code Playgroud)

mysql shell truncate

0
推荐指数
1
解决办法
1933
查看次数