Spring Boot需要@EnableTransactionManagement吗?我做了一些研究.有些人说你不需要它,因为Spring Boot已经启用它,其他人说你必须明确地使用它.所以怎么回事?
我正在阅读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%清楚,你能想到其他任何例子吗?
我有一个通用的接口,我想以通用的方式实现这个接口:
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) 我在本地主机上运行我的 Spring Web 应用程序,所以两个地址都有效:
我还希望看到这个应用程序在我机器的具体 IP 上运行(以便从移动设备访问它,但这在这里不太重要)。我使用 ipconfig 来获取我的 IPv4,但是当我像这样使用它时:
我收到“无法访问此网站”。那仍然在我的本地机器上,而不是移动设备上。我还应该设置其他东西来使其工作吗?
编辑:这是一个说明问题的 PrintScreen。我不认为这是应用程序配置的问题,因为服务器控制台应该在所有情况下都显示出来,即使没有部署或运行应用程序。
我在 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) 我想使用 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。
我有一个简单的RegEx,它应该寻找8位数字:
String number = scanner.findInLine("\\d{8}");
Run Code Online (Sandbox Code Playgroud)
但事实证明,它也匹配9位以上的数字.如何修复此RegEx以匹配8位数?
例如:12345678应该匹配,而1234567和123456789不应该匹配.
从java doc我知道:
对集合视图的迭代需要与HashMap实例的"容量"(桶的数量)加上其大小(键 - 值映射的数量)成比例的时间.因此,如果迭代性能很重要,则不要将初始容量设置得太高(或负载因子太低)非常重要.
这是否意味着迭代HashMap的时间复杂度为O(n²)?这个问题可能听起来很傻,但实际上我有点困惑.
我想弄清楚这一点:重载适用于子/超级类中的方法,还是仅适用于一个类的方法可以重载?
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的两种方法是否合法重载?超级方法也重载了吗?
我想根据其内容显示(或不显示)文本.例如,如果status等于ACCEPTED,我想显示这个单词,否则不显示.我有的是:
<td th:if="${trip.tripStatus} == 'ACCEPTED'" th:text="${trip.tripStatus}"></td>
Run Code Online (Sandbox Code Playgroud)
但看起来它不会那样工作.
java ×8
spring ×3
generics ×1
hashmap ×1
hibernate ×1
ipv4 ×1
java-8 ×1
jpa ×1
jsp ×1
lambda ×1
localhost ×1
overloading ×1
regex ×1
spring-boot ×1
spring-mvc ×1
thymeleaf ×1
transactions ×1