小编dle*_*rob的帖子

从IntelliJ运行时如何激活Spring Boot配置文件?

我有5个环境:

 - local (my development machine)
 - dev
 - qc
 - uat
 - live
 - staging
Run Code Online (Sandbox Code Playgroud)

我希望为每个环境使用不同的应用程序属性,因此我有以下属性文件,每个文件都有不同的数据源URL:

 - application.properties  (containing common properties)
 - application-local.properties
 - application-dev.properties
 - application-qc.properties
 - application-uat.properties
 - application-live.properties
Run Code Online (Sandbox Code Playgroud)

我正在使用IntelliJ并在本地计算机上的Gradle插件中使用bootRun运行我的应用程序.我将使用在运行Tomcat的所有其他环境上部署相同的应用程序war文件.

我试过添加:

--spring.profiles.active =本地

到脚本参数下的运行配置.

我试过添加

-Dspring.profiles.active =本地

到VM选项下的运行配置.

都没有工作.我一直看到启动时的INFO消息说:没有活动的配置文件集,回退到默认配置文件:默认

如果我使用Windows命令行运行我的应用程序

gradle bootRun
Run Code Online (Sandbox Code Playgroud)

但我首先设置了环境变量

set SPRING_PROFILES_ACTIVE=local
Run Code Online (Sandbox Code Playgroud)

一切正常.

所以我的问题是,从IntelliJ运行bootRun时如何激活本地弹簧启动配置文件?

spring intellij-idea gradle spring-boot

102
推荐指数
8
解决办法
10万
查看次数

如何在运行我的gradle构建之前在Android Studio中设置环境变量

My Gradle构建查看名为BUILD_NUMBER的环境变量,以确定要分配给我的Android应用程序的版本,如下所示:

def buildNumber = System.getenv("BUILD_NUMBER") ?: "local"
Run Code Online (Sandbox Code Playgroud)

因此,只要设置了该环境变量,就会在defaultConfig中使用内部版本号,如下所示:

versionName "1.4.0."+buildNumber
Run Code Online (Sandbox Code Playgroud)

通常,Jenkins将调用此Gradle构建并提供BUILD_NUMBER环境变量.

如果我从命令提示符运行Gradle构建,我知道我可以设置BUILD_NUMBER = x.

但是,如果我使用Android Studio构建,如何通过Android Studio本身设置BUILD_NUMBER环境变量?

android gradle android-studio android-gradle-plugin

22
推荐指数
3
解决办法
2万
查看次数

如何使用STS,Android SDK,Maven和Spring Android设置Android开发环境

  1. 安装最新的STS(目前为3.4.0)
  2. 根据现有IDE的常规Android开发设置步骤,在STS中设置Android开发环境:http://developer.android.com/sdk/installing/index.html
  3. 对于上面的步骤,您可以通过从已经设置其环境的另一个开发人员复制"android-sdk"文件夹来节省时间,并将您的STS指向该android文件夹(Window - > Preferences - > Android - > SDK地点)
  4. 按照以下方式安装m2e-android:http://rgladwell.github.io/m2e-android/

使用Maven创建示例Android应用程序

  1. 在STS中,单击文件 - >新建 - > Maven项目
  2. 选择工作区位置并单击"下一步"
  3. 对于Maven Archetype,选择"android-quickstart"并单击"下一步".如果您根据以下内容添加了Archetype,则应该存在此原型:http://rgladwell.github.io/m2e-android/
  4. 填写所需的Maven项目详细信息,然后单击"下一步".
  5. 在pom.xml中,将"platform.version"标记值设置为4.1.1.4
  6. 右键单击该项目,然后选择Build Project.
  7. 右键单击该项目,然后选择RunAsAndroidApplication.
  8. 它应该启动你的Android模拟器并部署'Hello World'应用程序.

在Android应用程序中使用Spring Android库:

  1. 在我们使用Maven时,请按照此处的说明配置您的依赖项:http://projects.spring.io/spring-android
  2. 使用上述依赖项似乎有一个错误.尝试在STS中运行Android应用程序时出现错误,它说"多个dex文件定义Lorg/springframework/core/ErrorCoded".这意味着在类路径上引用了重复的类.要避免此错误,请删除maven依赖元素"spring-android-auth".

使用Spring Android库中的RestTemplate:

  1. 参考文档为您提供所需的一切:http://docs.spring.io/spring-android/docs/1.0.1.RELEASE/reference/html/rest-template.html
  2. 请记住,您的Android应用程序必须注册正确的邮件转换器.例如:restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
  3. 请注意,您的Android应用程序必须包含uses-permission"android.permission.INTERNET"才能允许网络调用.

android maven resttemplate spring-android

9
推荐指数
0
解决办法
5298
查看次数

如果通过Bundle作为Parcelable传递,那么Android ResultReceiver回调如何工作?

我已经从我的Activity传递了ResultReceiver到我的服务.

将ResultReceiver传递给我的服务的活动代码示例,以便服务可以回调Activity:

ResultReceiver receiver = new ResultReceiver(new Handler()) {
    protected void onReceiveResult(int resultCode, Bundle resultData) {
        //process results
    }
}

Intent instructionServiceIntent = new Intent(context, InstructionService.class);
instructionServiceIntent.putExtra("receiver", receiver);
context.startService(instructionServiceIntent);
Run Code Online (Sandbox Code Playgroud)

InstructionService代码示例:

protected void onHandleIntent(Intent intent) {
    Bundle parameters = intent.getExtras();
    ResultReceiver resultReceiver = parameters.getParcelable("receiver");
    resultReceiver.send(METHOD_STATUS_RUNNING, Bundle.EMPTY);
}
Run Code Online (Sandbox Code Playgroud)

现在,这工作正常,因为当我在我的服务中调用resultReceiver.send方法时,会执行活动中相应的onReceiveResult方法.

我的问题是,这是如何工作的?据我所知,ResultReceiver作为Parcelable从活动传递到服务,这意味着它是该对象的"副本",而不是对在Activity中创建的原始ResultReceiver对象的引用.因此,如何对服务类的ResultReceiver的副本发送方法的调用,让这个活动中的原ResultReceiver对象运行它的onReceiveResult方法?

android callback parcelable

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

我在哪里将atlassian-plugin-sdk'allowGoogleTracking'选项设置为false?

我已经安装/设置了atlassian-plugin-sdk,所以我可以查看JIRA插件开发.

但是,当我运行"atlas-run-standalone --product jira"命令并启动JIRA实例时,它会尝试连接到Google Analytics并拒绝连接(它被我们的代理阻止).

它说我可以关闭此跟踪选项:

you may disable tracking by adding <allowGoogleTracking>false</allowGoogleTracking> to the amps plugin configuration in your pom.xml
Run Code Online (Sandbox Code Playgroud)

我的问题是,我在哪里可以找到这个"allowGoogleTracking"选项?其中pom.xml似乎无法在"atlassian-plugin-sdk"目录中找到一个.

我试过谷歌搜索和环顾四周,但我似乎无法找到他们确切地告诉我我应该编辑哪个pom.xml文件的任何地方.

atlassian-plugin-sdk

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

GreenDAO:从数据库中检索新实体以与更改后的实体进行比较

我在我的 Android 项目中使用 GreenDAO。

我已经实现了一个增量更改表,因此我可以跟踪对实体的各个更新。我想在一个“updateTask”方法中跟踪这些更改,因此无论从何处调用它,都可以更新增量表。

目前,我有一种方法可以更改 Task 实体的状态。

public void updateTaskStatus (Long taskId, String status) {
    Task task = taskDao.load(taskId);
    task.setStatus("Pending");
    updateTask(task);
}
Run Code Online (Sandbox Code Playgroud)

然后我有我的任务更新方法。

public void updateTask (Task task) {
    //Check for any changes to the Task entity in this method and update the delta table.
    Task existingTask = taskDao.load(task.getId());  //  <---this call returns the same reference to the task object that was passed into this method.
    if (!existingTask.getStatus().equals(task.getStatus())) { //<--this is always returning false as both existingTask and task …
Run Code Online (Sandbox Code Playgroud)

greendao

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

有没有一种方法可以使用实时模板为现有变量快速生成foreach?

我有以下代码片段:

Set<Company> companiesByUserName = companyUserService.getCompaniesByUserName(username);
Run Code Online (Sandbox Code Playgroud)

使用IntelliJ实时模板,我知道可以键入“ itco”,它将为我生成以下内容:

for (Iterator<Company> iterator = companiesByUserName.iterator(); iterator.hasNext(); ) {
    Company next =  iterator.next();
}
Run Code Online (Sandbox Code Playgroud)

但是,如何使用“ companiesByUserName”变量自动创建foreach?所以我想让它自动生成:

for (Company company: companiesByUserName) {
}
Run Code Online (Sandbox Code Playgroud)

因为foreach在for循环中遍历集合非常干净,所以我通常改用这些,因此,如果可能,希望自动生成它们。

intellij-idea

4
推荐指数
2
解决办法
760
查看次数

@ManyToOne可选标志与@JoinColumn可为空标志之间有什么区别?

我有以下定义公司的实体不能为空:

@ManyToOne(optional = false)
@JoinColumn(nullable = false)
private Company company;
Run Code Online (Sandbox Code Playgroud)

@ManyToOne批注中的“ optional = false”和@JoinColumn批注中的“ nullable = false”之间有什么区别?还是将它们都设置为多余?

jpa

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

如何访问在 docker 容器(由 Rancher 管理)中运行的 MySQL,而不在主机上发布端口?

我正在使用 Rancher 来管理 Kubernetes,它编排我的 Docker 容器。

我们每个需要持久化的微服务(运行在容器中)都有一个对应的MySQL容器。例如,MyApp 运行在名为 MyApp 的容器中,并持久保存到名为 MySQL-MyApp 的 MySQL 容器中。

我们有很多这样的。我们不想定义 MySQL 容器在哪些节点上运行,因此无法发布/公开主机上的端口,以防它与该主机上的任何其他端口发生冲突。

但是,如果我们的某个微服务的某些数据出现问题,我们需要能够使用 MySQL Workbench 访问相关容器中的 MySQL 实例,以便从物理网络上的外部计算机查看/编辑数据库中的数据。

我们有什么想法可以去做这件事吗?我们是否能够以某种方式临时公开/发布正在运行的 MySQL 容器的端口,以便我们可以通过 MySQL Workbench 连接到它,或者是否有其他方法来完成此任务?

mysql docker kubernetes microservices rancher

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