我正在尝试使用Gradle 1.6构建Java 8项目,但我坚持这个错误:
Execution failed for task ':ejb:compileJava'
invalid target release: 1.8
Run Code Online (Sandbox Code Playgroud)
JAVA_HOME设置为"D:\ Program Files\Java\jdk1.8.0",build.gradle包含以下行:
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
Run Code Online (Sandbox Code Playgroud) 有没有什么好的方法可以根据Spring Security角色过滤JSON输出?我正在寻找像@JsonIgnore这样的东西,但是对于角色,比如@HasRole("ROLE_ADMIN").我该如何实现呢?
是否可以在@Query注释中使用enum参数?
这是我用来查找用户角色的代码:
Role userRole = roleRepository.findByRole(Roles.USER);
if ( userRole == null ) {
LOGGER.debug("No role found with role: {}", Roles.USER);
}
Run Code Online (Sandbox Code Playgroud)
它打印出来
No role found with role: ROLE_USER
Run Code Online (Sandbox Code Playgroud)
但如果我试图找到所有角色,这就是我得到的:
for ( Role r : roleRepository.findAll() )
LOGGER.debug("{}", r);
Role@8a8c0a[roleId=1,role=role_admin,version=0]
Role@1efe9ee[roleId=2,role=role_staff,version=0]
Role@1e70f68[roleId=3,role=role_user,version=0]
Role@a475d1[roleId=4,role=role_guest,version=0]
Run Code Online (Sandbox Code Playgroud)
如您所见,用户角色确实存在.
RoleRepository:
public interface RoleRepository extends JpaRepository<Role, Long> {
@Query("SELECT r FROM Role r WHERE LOWER(r.role) = LOWER(:role)")
public Role findByRole(@Param("role") Roles role);
}
Run Code Online (Sandbox Code Playgroud)
角色:
@Entity
@Table(name = "role")
public class Role {
public enum Roles {
ADMIN("ROLE_ADMIN"), …Run Code Online (Sandbox Code Playgroud) 如何在"不编辑此文件"注释后添加换行符?我试图添加带换行符的textnode,但它不起作用.
码:
import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Main {
public static void main(String[] args) {
try {
final Document doc = DocumentBuilderFactory.newInstance().
newDocumentBuilder().newDocument();
doc.appendChild(doc.createComment(" DO NOT EDIT THIS FILE "));
final Element rootElement = doc.createElement("projects");
doc.appendChild(rootElement);
final Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.transform(new DOMSource(doc), new StreamResult(new File("C:/abc.xml")));
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
<!-- DO NOT …Run Code Online (Sandbox Code Playgroud) 目前我正在使用 bat 文件来启动我的 jar 并设置 java.system.class.loader。是否可以以编程方式执行此操作以摆脱 bat 文件?
@DatabaseSetup使用Spring Test DBUnit 的注释时是否可以设置表模式名称?目前我正在这样使用它:
@DatabaseSetup("user-data.xml")
public class UserMapperTest {
}
Run Code Online (Sandbox Code Playgroud)
user-data.xml:(我也尝试将元素名称设置为 user.system_user 但没有任何运气)
<dataset>
<system_user
...
/>
</dataset>
Run Code Online (Sandbox Code Playgroud)
在这里,我使用名为 user 的模式创建表:
create table "user".system_user (...);
Run Code Online (Sandbox Code Playgroud)
这是我在运行测试时遇到的异常:
org.h2.jdbc.JdbcSQLException: Table "SYSTEM_USER" not found; SQL statement:
delete from SYSTEM_USER [42102-175]
Run Code Online (Sandbox Code Playgroud) 是否可以为JFrame设置固定宽度?至少以下代码不起作用:
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JFrame;
public final class Main {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500, 500);
f.setMinimumSize(new Dimension(500, 0));
f.setMaximumSize(new Dimension(500, Integer.MAX_VALUE));
f.setVisible(true);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
最小设置有效,但最大值不是.
是否可以使用正则表达式在css文件中转换URL,方式如下所示?我不想硬编码字体名称.
从:
url('../fonts/glyphiconshalflings-regular.eot?#iefix') format('embedded-opentype')
Run Code Online (Sandbox Code Playgroud)
至:
url("#{resource['css:../fonts/glyphiconshalflings-regular.eot']}?#iefix") format('embedded-opentype')
Run Code Online (Sandbox Code Playgroud)
这就是我现在所拥有的:
task fixCSSResources << {
FileTree cssFiles = fileTree("src/main/webapp") {
include "**/*.css"
}
cssFiles.each { File cssFile ->
String content = cssFile.getText("UTF-8")
// what to do here?
cssFile.write(content, "UTF-8")
}
}
Run Code Online (Sandbox Code Playgroud) 我使用 Eclipse 进行了以下项目设置:
project
build.gradle
libraries.gradle
settings.gradle
ear-project
build.gradle
ejb-project
build.gradle
war-project
build.gradle
Run Code Online (Sandbox Code Playgroud)
这是来自根项目的 build.gradle:
apply from: "./libraries.gradle"
allprojects {
repositories {
mavenCentral()
}
}
buildscript {
repositories {
mavenCentral()
}
}
subprojects {
apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "findbugs"
group = "foo.bar"
version = "1.0.0-SNAPSHOT"
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
configurations {
provided {
description = "Non-exported compile-time dependencies"
}
}
sourceSets.main {
compileClasspath += configurations.provided
}
eclipse {
classpath {
plusConfigurations += configurations.provided
} …Run Code Online (Sandbox Code Playgroud)