首先,我想创建一个用户从我的Android应用程序向服务器发送一个后请求,该服务器使用Symfony2和FOSUserBundle.
最后,我想从移动应用程序登录用户,然后与服务器进行数据通信.
我知道如何在android-device上实现post-request.但我不知道如何配置FOSUserBundle和security.yml等以满足我的需求.虽然我可能需要一个_csrf_token或其他东西,我不知道从哪里得到它.
我已经将身份验证方法从form_login更改为http_basic,并认为这将是进行身份验证的最简单方法(使用https来保护密码).
但是现在......我需要做什么,以实现创建和登录没有表单的操作?我需要在移动设备上的后请求中添加什么内容?
感谢您的任何想法,意见和解决方案!
我有三个表:log,activity和jointable(many2many) log_activity(与log_id和activity_id+附加信息数据列).
我想删除log和log_activity.
我希望保留特定用户的所有日志,并且只保留其他用户的100行.
这意味着我想删除所有匹配a的行WHERE log.user_id != 1,但是最后的100(ORDER BY log.timestamp DESC).
我还想从连接log_activity表中删除与删除的日志相关的所有条目.该activity表应不被感动.
我认为db.delete(TABLE_NAME, whereClause , whereArgs);在这种情况下没有帮助..
有人能够提出有效的解决方案吗?
UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE
受Jacob Eggers和plafond的回答以及进一步研究的启发,我现在正在尝试这样做,但它还没有奏效:
CREATE TABLE IF NOT EXISTS log (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
timestamp LONG NOT NULL
);
CREATE TABLE IF NOT EXISTS …Run Code Online (Sandbox Code Playgroud) 我有一个maven配置文件,并希望设置一个属性,该属性稍后可用于java中的每个System.getProperty(..):
<profile>
<id>local-dev</id>
<properties>
<my.comp.my.prop>myValue</my.comp.my.prop>
</properties>
</profile>
Run Code Online (Sandbox Code Playgroud)
我想System.getProperty("my.comp.my.prop")成为,"myValue"但它是null..我如何正确设置?:)
Thansk!
我想重新打包apache的httpclient lib,用一个Android应用程序发送它(比如https://code.google.com/p/httpclientandroidlib/但是使用HttpClient 4.3.1)
因此,我手动下载了httpclient 4.3.1 jar(包括其所有依赖项)并使用jarjar重新打包它:
x@x$: cd libs && for f in *.jar; do java -jar ../jarjar-1.4.jar process ../rules.txt $f out/my-$f; done
Run Code Online (Sandbox Code Playgroud)
使用rules.txt:
rule org.apache.http.** my.repackaged.org.apache.http.@1
Run Code Online (Sandbox Code Playgroud)
然后我用ant将输出放在一起:
<project name="MyProject" default="merge" basedir=".">
<target name="merge">
<zip destfile="my-org-apache-httpclient-4.3.1.jar">
<zipgroupfileset dir="libs/out" includes="*.jar"/>
</zip>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
我可以使用该文件来开发和测试我的应用程序,但如果我在android上部署它,它会抛出一个异常,就像它找不到my.repackaged.org.apache.logging.log4j.something引用的那样my.package.org.apache.logging.whatEver.
所以,现在我想通过使用字节码操作来消除对commons-logging的任何依赖.这已经在以前完成:http://sixlegs.com/blog/java/dependency-killer.html
但我想知道我是怎么做到的?org.apache.commons.logging.Log只有依赖项:
x$x$: java -jar jarjar-1.4.jar find jar my-org-apache-httpclient-4.3.1.jar commons-logging-1.1.3.jar
my/http/impl/execchain/ServiceUnavailableRetryExec -> org/apache/commons/logging/Log
my/http/impl/execchain/RetryExec -> org/apache/commons/logging/Log
my/http/impl/execchain/RedirectExec -> org/apache/commons/logging/Log
my/http/impl/execchain/ProtocolExec -> org/apache/commons/logging/Log
...
Run Code Online (Sandbox Code Playgroud)
我认为要走的路是,删除这些依赖项并将其替换为自己的实现,就像他在此处所做的那样 …
android httpclient jarjar apache-commons-logging androidhttpclient
使用案例:用户可以使用JavaScript编写的单页Web应用程序来CRUD多项选择题.
201 CREATED包含一个map 临时id - > backend id来更新其id.我们应该如何在后端实现最后一部分(5-7添加选项)的对应部分?
我试试这个,但我坚持不能得到孩子的ID.
实体
@Entity
public class Question {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(mappedBy = "config", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
private List<Option> options = new ArrayList<>();
// ...
}
@Entity
public class Option {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name = "question_id", nullable = false)
private Question question; …Run Code Online (Sandbox Code Playgroud) 将 spring boot 升级到 2.4 后,我们无法运行通过此脚本创建的最终 docker 镜像:
script:
- echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY
- apk add openjdk11
- ./gradlew bootBuildImage --imageName=$DOCKER_IMAGE_INTERMEDIATE
- docker build -f ./docker/Dockerfile --build-arg base_image=$DOCKER_IMAGE_INTERMEDIATE -t $DOCKER_IMAGE_TAGGED .
- docker push $DOCKER_IMAGE_TAGGED
- docker tag $DOCKER_IMAGE_TAGGED $DOCKER_IMAGE_LATEST
- docker push $DOCKER_IMAGE_LATEST
Run Code Online (Sandbox Code Playgroud)
我们Dockerfile只是创建一个文件夹并将chown其发送给CNB用户:
# The base_image holds a reference to the image created by ./gradlew bootBuildImage
ARG base_image
FROM ${base_image}
ENV SOME_PATH /var/lib/some/files
USER root
RUN …Run Code Online (Sandbox Code Playgroud) 在服务器迁移期间,新的 nginx 配置缺少缓存控制指令。因此,我们最终得到了一个缓存index.html,这对于我们的 SPA 来说非常糟糕,如果我们部署新代码,它就不再刷新。我们需要不缓存index.html。
这是我们几天前上线的(错误的)nginx 配置:
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Run Code Online (Sandbox Code Playgroud)
我们修复了我们的配置:
server {
listen 80;
root /usr/share/nginx/html;
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
location ~* \.(js|jpg|jpeg|gif|png|svg|css)$ {
add_header Cache-Control "max-age=31536000, public";
}
error_page 500 502 503 504 /50x.html;
location = …Run Code Online (Sandbox Code Playgroud) 我正在学习协程,需要一些帮助来理解基本用例。
实现一个非阻塞方法:
Flow因为它必须返回一个Flow我不会使用的suspend(就像我返回单个项目时一样)。返回Flow和suspend(哪种返回 a Mono)最常见的是互斥的,对吗?
所以我想出了这个签名:
override fun getHistory(beforeUtcMillisExclusive: Long): Flow<Item>
Run Code Online (Sandbox Code Playgroud)
尝试实施:
val itemInNextPeriod = itemRepository.findOneByTimestampLessThan(beforeUtcMillisExclusive)
if (itemInNextPeriod == null) {
return emptyFlow()
} else {
val range = calcRange(itemInNextPeriod.timestamp)
return itemRepository.findByTimestampGreaterThanEqualAndTimestampLessThan(range.start, range.end)
}
Run Code Online (Sandbox Code Playgroud)
这给了我第一行:
挂起函数“findOneByTimestampLessThan”只能从协程或另一个挂起函数调用
我理解这里不允许我们调用挂起函数的问题,并且当已经返回流时,IntelliJ“添加挂起”提出的解决方案没有意义。
所以,从这个问题我得到了使用的想法return flow {...}:
return flow {
val itemInNextPeriod = itemRepository.findOneByTimestampLessThan(beforeUtcMillisExclusive)
if (itemInNextPeriod == null) {
return@flow
} else {
val range = calcRange(itemInNextPeriod.timestamp)
return@flow …Run Code Online (Sandbox Code Playgroud) 如何实现内部事件总线以在 webflux spring 堆栈中执行异步操作?
我想要一个服务发出一个事件:
@Service
class FeedServiceImpl(/*...dependencies...*/) : FeedService {
override suspend fun deleteEntry(entryId: Long) {
entryRepository.deleteById(entryId)
publishEvent(
FeedEntryDeletedEvent(
timestamp = time.utcMillis(),
entryId = entryId,
)
)
}
}
Run Code Online (Sandbox Code Playgroud)
发布者服务不知道的不同组件应该能够决定对该事件做出反应。
@Service
class CommentServiceImpl(/*...dependencies...*/): CommentService {
override suspend fun onDeleteEntry(event: FeedEntryDeletedEvent) {
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
在 MVC 应用程序中,我将使用在处理程序 ( ) 上ApplicationEventPublisher发布事件 ( publishEvent) 和@EventListener+ 。@AsynconDeleteEntry
反应式堆栈中的等效项是什么?
我考虑的另一个选择是运行嵌入式消息服务,因为这应该意味着异步语义。但这对于一个简单的场景来说感觉是很大的开销。
我找到了这些SO线程
但他们不回答这种情况,因为他们假设发布者知道侦听器。但我需要松散耦合。
我还发现了这些春季问题 …
我试图使用dirPagination但它不起作用.请参阅我的代码:http://plnkr.co/edit/18BxNhHRNyRoI17sBGQF?p = preview
我的代码:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<link data-require="bootstrap-css@3.1.1" data-semver="3.1.1" rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
<script data-require="angular.js@1.3.0-beta.5" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
<script data-require="jquery@*" data-semver="2.0.3" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script data-require="bootstrap@3.1.1" data-semver="3.1.1" src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script>
var myApp = angular.module('myApp', [])
.controller('PsCtrl', ['$scope', function ($scope) {
$scope.data = [
{a:1, b:1},
{a:2, b:2},
{a:3, b:3}
];
}]);
</script>
<script src="dirPagination.js"></script>
</head>
<body>
<div ng-controller="PsCtrl">
ItemCount: {{data.length}}
<ul>
<li dir-paginate="item in data | itemsPerPage: 2">{{ item }}</li>
</ul>
<dir-pagination-controls></dir-pagination-controls>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我只把它作为输出:
ItemCount: …Run Code Online (Sandbox Code Playgroud)