我正在使用spring-boot设置弹簧默认值.我想使用这种@EnableScheduling机制,并有条件地安排我的任务.
因此我必须实现SchedulingConfigurer并设置TaskScheduler明确.
但是当注入时TaskScheduler,我得到以下错误.但是为什么spring-boot不会相应地自动提供调度程序呢?
@Configuration
@EnableAutoConfiguration
@EnableScheduling
public class AppConfig {
}
@Service
public class JobService implements SchedulingConfigurer {
@Autowired
private TaskScheduler taskScheduler;
//schedule the task dynamically
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskScheduler); //fails
taskRegistrar.addTriggerTask(task, trigger);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.scheduling.TaskScheduler; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.scheduling.TaskScheduler] found for dependency: expected at least 1 bean which qualifies as autowire …Run Code Online (Sandbox Code Playgroud) 我想pg_dump用来备份postgres数据库内容.我只想忽略一个包含几百GB缓存数据的特定表.
我怎么能用pg_dump实现这个目标?
Java 9提供Map.of()了轻松创建具有固定值的地图的功能.
问题:我想创建一个保留插入顺序的地图LinkedHashMap.这个工厂有可能吗?至少map.of()不保存订单......
我需要NO_ZERO_DATE从 全局删除sql_mode.
删除时是否可以保留任何默认值?
类似于伪代码
my.cnf::
sql_mode = $sql_mode(regex.replace(NO_ZERO_DATE, '');
Run Code Online (Sandbox Code Playgroud)
优点是我不会在未来版本的mysql.
@PostConstruct
public void performStateChecks() {
throw new RuntimeException("test");
}
Run Code Online (Sandbox Code Playgroud)
如果我spring使用上面的代码启动应用程序,它将阻止该应用程序启动。
我正在寻找的是在启动后直接执行一个方法,但是异步的。意味着,它不应该延迟启动,并且即使发生故障也不应该阻止应用程序运行。
如何使初始化异步?
可能是什么问题?
@Entity
@NamedQueries( {
@NamedQuery(name = User.ALL,
query = "SELECT u FROM User u")
})
public class User {
public static final String ALL = "User.all";
}
public class Service {
find... with ... User.ALL
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
Caused by: org.hibernate.MappingException: Named query not known: User.all
at org.hibernate.impl.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:93)
at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1407)
at $Session_a5ad46cfa25.getNamedQuery(Unknown Source)
at $Session_a5ad46cf913.getNamedQuery(Unknown Source)
at de.medicshare.dal.HibernateCrudServiceDAO.findUniqueWithNamedQuery(HibernateCrudServiceDAO.java:83)
at $CrudServiceDAO_a5ad46cfa19.findUniqueWithNamedQuery(Unknown Source)
at $CrudServiceDAO_a5ad46cfa1b.findUniqueWithNamedQuery(Unknown Source)
at $CrudServiceDAO_a5ad46cf931.findUniqueWithNamedQuery(Unknown Source)
at de.medicshare.pages.Signup.proceedSignup(Signup.java:82)
at de.medicshare.pages.Signup.dispatchComponentEvent(Signup.java)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:923)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1106)
... 90 more
Run Code Online (Sandbox Code Playgroud) 我在画布上画一个矩形,从矩形的中心到坐标空间中的一个随机点画一条线.
现在,我想按行矩形内的长度截断行,以便行从矩形边开始.
我怎么能这样做?
例
Pstart(1, 3),Pend(3,
1)P(2, 2)P(2, 2)了Q(10, 2).据我所知,矩形的宽度是2,我可以告诉行开始P(4, 2)而不是P(2, 2).
当该点与XY轴之一不平行时,这会变得更复杂.此外,矩形内部的长度对于对角线而言将是不同的量.
如何计算线点相对于矩形中心和线的终点的起始偏移?
可能我必须找到线穿过矩形的点,然后让线从交叉点开始.但我怎么能得到这一点呢?
我有不同的类类型,并且根据某些条件,我想委托适当的service,可以处理这些类类型.
示例:我有几个类如下.
class Student;
class Prof;
...
Run Code Online (Sandbox Code Playgroud)
每个班级都有一项服务,实施:
interface IPersonService {
void run();
}
Run Code Online (Sandbox Code Playgroud)
我在mode某些条件下找到了一个:
enum PersonType {
STUDENT, PROF;
}
Run Code Online (Sandbox Code Playgroud)
当我委托时:
@Autowired
private StudentService studentService;
@Autowired
private ProfService profService;
//@param mode assume known
public void delegate(PersonType mode) {
//assume there are several of those switch statements in my business code
switch (mode) {
case STUDENT: studentService.run(); break;
case PROF: profService.run(); break;
default: break;
}
}
Run Code Online (Sandbox Code Playgroud)
问题:在引入其他类时,我必须修改PersonType并添加一个额外的枚举(这没有问题),但我还必须扩展任何switch语句并添加对其他委托服务的调用.此外,我必须显式自动将这些服务自动装配到交换机委托人.
问题:如何优化此代码,为任何其他类实现新服务,而不必触及任何switch语句?
从java.util.date对象开始时:将小时部分作为integer关注性能的最佳方法是什么?
我必须迭代几百万个日期,因此性能很重要.
通常我会得到如下的时间,但也许有更好的方法?
java.util.Date date;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int hours = calendar.get(Calendar.HOUR_OF_DAY);
Run Code Online (Sandbox Code Playgroud) 以下初始化为spring-integration专用端口上的套接字。
目标是给应用程序 2 分钟的时间在该端口上运行,否则失败就是不成功。但是应用程序启动不应直接失败,该端口在启动时未空闲!
@Configuration
@EnableIntegration
public class SocketConfiguration {
@Value("${app.port}")
private String port;
@Bean
public TcpConnectionFactoryFactoryBean tcpFactory() {
CompletableFuture.runAsync(() -> SocketUtils.findAvailableTcpPort(port, port)).get(2, TimeUnit.MINUTES);
}
}
Run Code Online (Sandbox Code Playgroud)
问题:从 Spring Framework 6SocketUtils开始。@Deprecated什么是它的正确替代品?
该文档仅声明作为替代方案:
建议您依靠服务器在随机端口上启动的能力,而不是使用 SocketUtils 查找服务器的可用本地端口
好吧,这不是我想要的,我也不能使用 if,因为我历史上绑定到该特定端口!
java ×8
spring ×3
spring-boot ×2
date ×1
gwt ×1
hashmap ×1
hibernate ×1
java-9 ×1
java-canvas ×1
math ×1
mysql ×1
postgresql ×1
sockets ×1
spring-async ×1
sql ×1
vector ×1