我有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时如何激活本地弹簧启动配置文件?
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环境变量?
使用Maven创建示例Android应用程序
在Android应用程序中使用Spring Android库:
使用Spring Android库中的RestTemplate:
我已经从我的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方法?
我已经安装/设置了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文件的任何地方.
我在我的 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) 我有以下代码片段:
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循环中遍历集合非常干净,所以我通常改用这些,因此,如果可能,希望自动生成它们。
我有以下定义公司的实体不能为空:
@ManyToOne(optional = false)
@JoinColumn(nullable = false)
private Company company;
Run Code Online (Sandbox Code Playgroud)
@ManyToOne批注中的“ optional = false”和@JoinColumn批注中的“ nullable = false”之间有什么区别?还是将它们都设置为多余?
我正在使用 Rancher 来管理 Kubernetes,它编排我的 Docker 容器。
我们每个需要持久化的微服务(运行在容器中)都有一个对应的MySQL容器。例如,MyApp 运行在名为 MyApp 的容器中,并持久保存到名为 MySQL-MyApp 的 MySQL 容器中。
我们有很多这样的。我们不想定义 MySQL 容器在哪些节点上运行,因此无法发布/公开主机上的端口,以防它与该主机上的任何其他端口发生冲突。
但是,如果我们的某个微服务的某些数据出现问题,我们需要能够使用 MySQL Workbench 访问相关容器中的 MySQL 实例,以便从物理网络上的外部计算机查看/编辑数据库中的数据。
我们有什么想法可以去做这件事吗?我们是否能够以某种方式临时公开/发布正在运行的 MySQL 容器的端口,以便我们可以通过 MySQL Workbench 连接到它,或者是否有其他方法来完成此任务?
android ×3
gradle ×2
callback ×1
docker ×1
greendao ×1
jpa ×1
kubernetes ×1
maven ×1
mysql ×1
parcelable ×1
rancher ×1
resttemplate ×1
spring ×1
spring-boot ×1