小编jar*_*sik的帖子

Spring Boot中的@EnableTransactionManagement

Spring Boot需要@EnableTransactionManagement吗?我做了一些研究.有些人说你不需要它,因为Spring Boot已经启用它,其他人说你必须明确地使用它.所以怎么回事?

transactions spring-boot

41
推荐指数
5
解决办法
6万
查看次数

Lambda'特殊的void-compatibility rule' - 语句表达式

我正在阅读Java 8 in Action.在3.5.2节中,有一个关于'void-compatibility rule'的段落:

如果lambda有一个语句表达式作为它的主体,它与一个返回void的函数描述符兼容(前提是参数列表也是兼容的).例如,以下两行都是合法的,即使添加List的方法返回一个布尔值而不是消费者上下文中预期的void(T - > void):

// Predicate has a boolean return 
Predicate<String> p = s -> list.add(s); 
// Consumer has a void return 
Consumer<String> b = s -> list.add(s);
Run Code Online (Sandbox Code Playgroud)

你会如何描述'语句表达'?我以为这是陈述或表达.此虚空兼容性规则对我来说也不是100%清楚,你能想到其他任何例子吗?

java lambda java-8

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

实现通用接口

我有一个通用的接口,我想以通用的方式实现这个接口:

public interface BaseBean<T> {

    public T create(T t);
    public T read(Long id);
    public T update(T t);
    public void delete(T t);

}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我也不能使实现通用.Eclipse以非泛型方式实现所有接口方法:

public class BaseBeanImpl<T> implements NewBaseBean {

    @Override
    public Object create(Object t) {
        return null;
    }

    @Override
    public Object read(Long id) {
        return null;
    }

    @Override
    public Object update(Object t) {
        return null;
    }

    @Override
    public void delete(Object t) {
    }

    @Override
    public Object find(Long id) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我改变时:

public Object create(Object t)
Run Code Online (Sandbox Code Playgroud)

public …
Run Code Online (Sandbox Code Playgroud)

java generics

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

在本地网络 IP 192.168.XX 上运行 Spring 应用程序

我在本地主机上运行我的 Spring Web 应用程序,所以两个地址都有效:

http://localhost:9999/app

http://127.0.0.1:9999/app

我还希望看到这个应用程序在我机器的具体 IP 上运行(以便从移动设备访问它,但这在这里不太重要)。我使用 ipconfig 来获取我的 IPv4,但是当我像这样使用它时:

http://192.168.1.4:9999/app

我收到“无法访问此网站”。那仍然在我的本地机器上,而不是移动设备上。我还应该设置其他东西来使其工作吗?

编辑:这是一个说明问题的 PrintScreen。我不认为这是应用程序配置的问题,因为服务器控制台应该在所有情况下都显示出来,即使没有部署或运行​​应用程序。

在此处输入图片说明

java spring localhost ipv4

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

@SqlResultSetMapping 和 @Embedded

我在 Hibernate 中映射嵌入字段时遇到问题。这是代码:

@Entity
@Table(name="CAR")
@SqlResultSetMapping(name = "carMapping",
entities = {
    @EntityResult(entityClass = Car.class,
fields = {
    @FieldResult(name = "id", column = "ID"),
    @FieldResult(name = "producer", column = "PRODUCER"),
    @FieldResult(name = "model", column = "MODEL"),

    @FieldResult(name="bookNumber",column="SERVICE_BOOK_NUMBER"),
    @FieldResult(name="owner", column="SERVICE_BOOK_OWNER")
}
)})
public class Car {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
private Long id;

@Column(name="PRODUCER")
private String producer;

@Column(name="MODEL")
private String model;

@Embedded
@AttributeOverrides({
    @AttributeOverride(name="bookNumber", column=@Column(name="SERVICE_BOOK_NUMBER")),
    @AttributeOverride(name="owner", column=@Column(name="SERVICE_BOOK_OWNER")),
})
private ServiceBook serviceBook;
Run Code Online (Sandbox Code Playgroud)

当我尝试检索汽车时,出现以下错误:

javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only 
because the bean …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa

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

从 Spring MVC 中的 JSP 按钮调用控制器方法

我想使用 Spring MVC 中 JSP 页面上的按钮调用控制器方法,但我希望它停留在当前页面上,不要重新加载它或任何东西,只需调用一个方法。我觉得很难。我的按钮在cars.jsp页面上。为了留在这个页面上,我必须做这样的事情:

@RequestMapping(value="/start")
public String startCheckingStatus(Model model){
    System.out.println("start");
    model.addAttribute("cars", this.carService.getCars());
    return "car\\cars";
}
Run Code Online (Sandbox Code Playgroud)

按钮:

 <a href="<spring:url value="/cars/start"/>">Start</a>
Run Code Online (Sandbox Code Playgroud)

但这不是一个好的解决方案,因为我的页面实际上是重新加载的。我可以只调用controller方法而不进行任何刷新、重定向或任何操作吗?当我像这样删除返回类型时:

@RequestMapping(value="/start")
public void startCheckingStatus(Model model){
    System.out.println("start");
}
Run Code Online (Sandbox Code Playgroud)

我得到了 404。

java spring jsp spring-mvc

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

完全匹配8位数的Java RegEx

我有一个简单的RegEx,它应该寻找8位数字:

String number = scanner.findInLine("\\d{8}");
Run Code Online (Sandbox Code Playgroud)

但事实证明,它也匹配9位以上的数字.如何修复此RegEx以匹配8位数?

例如:12345678应该匹配,而1234567和123456789不应该匹配.

java regex

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

HashMap迭代复杂度

从java doc我知道:

对集合视图的迭代需要与HashMap实例的"容量"(桶的数量)加上其大小(键 - 值映射的数量)成比例的时间.因此,如果迭代性能很重要,则不要将初始容量设置得太高(或负载因子太低)非常重要.

这是否意味着迭代HashMap的时间复杂度为O(n²)?这个问题可能听起来很傻,但实际上我有点困惑.

java hashmap time-complexity

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

重载Java中的私有方法

我想弄清楚这一点:重载适用于子/超级类中的方法,还是仅适用于一个类的方法可以重载?

public class Super{

     private void method(){
     }
}

class Sub extends Super{

     private void method(){ 
     }
     private void method(int x){    
     }  
}
Run Code Online (Sandbox Code Playgroud)

Sub的两种方法是否合法重载?超级方法也重载了吗?

java overloading

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

Thymeleaf如果在String上

我想根据其内容显示(或不显示)文本.例如,如果status等于ACCEPTED,我想显示这个单词,否则不显示.我有的是:

<td th:if="${trip.tripStatus} == 'ACCEPTED'" th:text="${trip.tripStatus}"></td>
Run Code Online (Sandbox Code Playgroud)

但看起来它不会那样工作.

spring thymeleaf

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