我正在使用Spring Boot.我终于设法设置了两个数据源,但现在我面临另一个问题.
有两个数据源spring.jpa.hibernate.ddl-auto=create似乎停止在我的春季启动应用程序spring.jpa.generate-ddl=true中工作,现在只做工作
我无法为每个数据源选择自动创建策略.我更愿意为数据源1创建模式,只使用第二个数据库中创建的模式和数据源2.
任何机构都知道如何解决这些问题?注意我不想在可能的情况下完全丢弃自动配置.我甚至不知道,如果hibernate能够在一个持久性单元中初始化模式.
application.properties
spring.datasource-internal.url=jdbc:hsqldb:mem:testdb
spring.datasource-internal.username=sa
spring.datasource-internal.password=sa
spring.datasource-internal.driver-class-name=org.hsqldb.jdbcDriver
spring.datasource-internal.jpa.database-platform=org.hibernate.dialect.HSQLDialect
spring.datasource-external.url=jdbc:hsqldb:mem:testexternal
spring.datasource-external.username=sa
spring.datasource-external.password=sa
spring.datasource-external.driver-class-name=org.hsqldb.jdbcDriver
spring.datasource-external.jpa.database-platform=org.hibernate.dialect.HSQLDialect
flyway.enabled=false
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
Run Code Online (Sandbox Code Playgroud)
DBInternalConfig
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "cz.data.internal",
entityManagerFactoryRef = "internalEntityManagerFactory",
transactionManagerRef = "internalTransactionManager")
public class DBConfigInternal {
public static final String INTERNAL = "internal";
@Bean(name = "internalDataSource")
@Primary
@ConfigurationProperties(prefix = "spring.datasource-internal")
public DataSource internalDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "internalEntityManagerFactory")
@Primary
public LocalContainerEntityManagerFactoryBean internalEntityManagerFactory(
EntityManagerFactoryBuilder builder) {
return builder
.dataSource(internalDataSource())
.packages("cz.data.internal.entity")
.persistenceUnit(INTERNAL)
.build();
}
@Bean(name = …Run Code Online (Sandbox Code Playgroud) 这是一件让我烦恼的小事。当我运行一个测试用例时,输出控制台被消息淹没(尤其是在测试 Spring bean 时)。测试完成后,我看到红色条出现,我看到下方某处有堆栈跟踪,但输出立即移至顶部。
我知道有一个“滚动到最后”按钮,但我必须点击它。我希望自动显示测试输出的结尾。
我正在使用 IntelliJ CE,2018.3.2
我附上一个屏幕截图,显示执行失败的测试后我的控制台。尽管启用了“滚动到结尾”按钮,但输出会“倒带”到顶部。
我正在使用Android架构组件.我想要的是当用户在Edittext中键入"0"并单击按钮以将Fragment替换为新的,并且如果键入任何其他内容后发布Toast错误消息.在问题是当我从新的Fragment(BlankFragment)返回并再次单击按钮并再次输入"0"并单击时,onchange()被多次调用,因此片段被多次创建
FragmentExample.class:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
manager = getActivity().getSupportFragmentManager();
viewmModel = ViewModelProviders.of(getActivity(), viewModelFactory)
.get(VModel.class);
View v = inflater.inflate(R.layout.fragment_list, container, false);
b = (Button) v.findViewById(R.id.b);
et = (EditText) v.findViewById(R.id.et);
viewmModel.observeData().observe(getActivity(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
if(s.equals("0")) {
BlankFragment fragment = (BlankFragment) manager.findFragmentByTag(DETAIL_FRAG);
if (fragment == null) {
fragment = BlankFragment.newInstance();
}
addFragmentToActivity(manager,
fragment,
R.id.root_activity_detail,
DETAIL_FRAG
);
} else {
Toast.makeText(getContext(), "Wrong text", Toast.LENGTH_SHORT).show();
}
}
});
b.setOnClickListener(new View.OnClickListener() {
@Override …Run Code Online (Sandbox Code Playgroud) 最近开始学习Java考试.
学习包时,试过这个并收到错误信息.我做的是,
//Creating class A (Within package the package: com.test.helpers)
package com.test.helpers;
public class A {
public void sayHello(){
System.out.println("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
//And then the class App utilizing the class A
import com.test.helpers.*;
public class App{
public static void main(String args[]){
A a = new A();
a.sayHello();
}
}
Run Code Online (Sandbox Code Playgroud)
我将这两个文件放在名为"JavaTest"的目录中(在Windows 7上),并首先使用命令"javac -d.A.java"编译A.java.
然后,在尝试编译App.java时,我收到以下错误消息:
App.java:5: error: cannot access A
A a = new A();
^
bad source file: .\A.java
file does not contain class A
Please remove or make sure …Run Code Online (Sandbox Code Playgroud) 我现在需要发送股票市场数据和格式很糟糕.需要发送一些类似的东西
| Symbol | Price | Change |
|--------|-------|--------|
| ABC | 20.85 | 1.626 |
| DEF | 78.95 | 0.099 |
| GHI | 23.45 | 0.192 |
| JKL | 98.85 | 0.292 |
Run Code Online (Sandbox Code Playgroud)
这就是我尝试过的.
| 符号| 价格| 改变|
| -------- | ------- | -------- |
| ABC | 20.85 | 1.626 |
| DEF | 78.95 | 0.099 |
| GHI | 23.45 | 0.192 |
JKL | 98.85 | 0.292 |
我有一个使用多种服务的控制器类。我为该控制器编写了一个测试,例如:
@RunWith(SpringRunner.class)
@WebMvcTest(value = PurchaseController.class, secure = false)
public class PurchaseControllerTest {
@MockBean
private ShoppingService shoppingService;
@MockBean
private ShopRepository shopRepository;
@MockBean
private SomeOtherRepository someOtherRepository;
@Autowired
private MockMvc mockMvc;
// ... some tests goes here
Run Code Online (Sandbox Code Playgroud)
事情是,往往有很多这样的模拟,因此有很多行代码。我知道这可能是代码异味的迹象,但这不是我现在的重点。
我注意到还有一个@MockBeans注释有@Target(ElementType.TYPE). 所以我想我可以尝试:
@RunWith(SpringRunner.class)
@WebMvcTest(value = PurchaseController.class, secure = false)
@MockBeans(value = {ShoppingService.class, ShopRepository.class})
public class PurchaseControllerTest {
Run Code Online (Sandbox Code Playgroud)
但它没有事件编译。
我的问题是:我们如何使用@MockBeans注释?它适用于我的情况吗?
我们有一个Spring Boot(2.0.4)应用程序,它公开了许多端点,其中一个端点使客户端可以检索有时非常大的文件(约200 GB)。该应用程序通过配置了滚动更新策略的Kubernetes部署在Pod中公开。
当我们通过将映像设置为最新版本来更新部署时,吊舱会被破坏,新的吊舱会旋转。我们的服务可满足新要求。但是,当前的请求可能并且确实会被切断,这对于下载非常大文件的客户端来说可能会很烦人。
我们可以在部署规范中配置Container Lifecycle Pre-Stop挂钩,以在通过其PID发送关闭信号给应用之前注入暂停。这有助于防止任何新流量流向已设置为“终止”的Pod。有没有一种方法可以暂停应用程序关闭过程,直到所有当前请求都已完成(这可能需要数十分钟)?
这是我们在Spring Boot应用程序中尝试过的方法:
实现一个关闭侦听器ContextCloseEvents; 不幸的是,我们无法可靠地检索活动请求列表。在关机过程的此阶段,任何可能有用的执行器指标均不可用。
通过实施HttpSessionListener和覆盖sessionCreated/Destroy方法来更新计数器来对活动会话进行计数。失败是因为方法没有在单独的线程上调用,所以始终在关闭侦听器中报告相同的值。
我们应该尝试其他策略吗?从应用程序本身或容器中,还是直接通过Kubernetes资源描述符?建议/帮助/指针将不胜感激。
编辑:我们管理集群,因此我们仅尝试通过修改的Pod规范在对部署进行托管更新期间减轻当前连接的客户端的服务中断
我正在编写一个简单的应用程序(Spring + Hibernate + PostgreSql db).我只是想构建一个示例对象并在db中持久化.
我运行一个简单的java类main方法,我已经加载了applicationContext并且引用了服务类,如下所示
TestService srv = (TestService)factory.getBean("testService");
Run Code Online (Sandbox Code Playgroud)
应用上下文 - 上下文:
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactoryVsm" />
</bean>
<bean id="testService" class="com.test.service.TestServiceImpl">
<property name="testDao" ref="testDao"/>
</bean>
<bean id="testDao" class="com.test.dao.TestDaoImpl>
<property name="sessionFactory" ref="sessionFactoryVsm"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
在TestService中我注入了TestDao.在测试服务方法中,我构造了雇员对象emp1和emp2并且两次调用dao来更新.
TestDaoImpl代码:
public void saveOrUpdate(BaseDomainModel baseObject) {
Session session = null;
try {
session = getHibernateTemplate().getSessionFactory().openSession();
session.saveOrUpdate(baseObject);
session.flush();
} catch (Exception e) {
logger.error("Generic DAO:saveOrUpdate::" + e);
e.printStackTrace();
} finally {
if (session != null) {
session.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当emp2更新失败时,emp1也应该失败.我怎么做.请指教
提前致谢
更新 : …
尝试使用 Keras/Tensorflow 构建小波神经网络。对于这个神经网络,我应该使用小波函数作为我的激活函数。
我尝试通过简单地调用创建自定义激活函数来做到这一点。然而,反向传播似乎存在问题
import numpy as np
import pandas as pd
import pywt
import matplotlib.pyplot as plt
import tensorflow as tf
from keras.models import Model
import keras.layers as kl
from keras.layers import Input, Dense
import keras as kr
from keras.layers import Activation
from keras import backend as K
from keras.utils.generic_utils import get_custom_objects
def custom_activation(x):
return pywt.dwt(x, 'db1') -1
get_custom_objects().update({'custom_activation':Activation(custom_activation)})
model = Sequential()
model.add(Dense(12, input_dim=8, activation=custom_activation))
model.add(Dense(8, activation=custom_activation)
model.add(Dense(1, activation=custom_activation)
Run Code Online (Sandbox Code Playgroud)
完整运行代码时出现以下错误
SyntaxError: invalid syntax
如果我跑
model = Sequential()
model.add(Dense(12, input_dim=8, …Run Code Online (Sandbox Code Playgroud) neural-network pywavelets keras tensorflow activation-function
在 angular@Input属性上结合[propertyNameInParent] = ”propertyNameInChild”允许我们将父属性的值绑定到子属性。也称为单向绑定。奇怪的是,就我而言,它也在更新父类中的属性。这怎么可能?
父组件 -> 收藏夹城市子组件 -> 城市详细信息
所以基本上在(点击)事件中,最喜欢的城市是选择(selectedCity 属性)。然后在城市详细信息组件中,城市可以通过单击onPlusIconClick()。不知何故,这也触发了最喜欢城市的 city.rating 上升。为什么我不必使用事件发射器将更新后的值发送回父组件?
最喜欢的城市.component.ts
import {Component, OnInit} from '@angular/core';
import {CitiesService} from '../../services/cities.service';
import {City} from '../../model/city';
@Component({
selector: 'app-favorite-cities',
templateUrl: './favorite-cities.component.html',
styleUrls: ['./favorite-cities.component.css']
})
export class FavoriteCitiesComponent implements OnInit {
cities: City[];
selectedCity: City;
constructor(private citiesService: CitiesService) {
}
ngOnInit() {
this.citiesService.getCities().subscribe(
(data) => this.cities = data,
(err) => console.log(err),
() => { }
);
}
setSelectedCity(city: City): void {
this.selectedCity = city; …Run Code Online (Sandbox Code Playgroud) java ×3
spring ×3
spring-boot ×3
hibernate ×2
android ×1
angular ×1
datasource ×1
docker ×1
import ×1
jpa ×1
junit ×1
keras ×1
kubernetes ×1
package ×1
pywavelets ×1
spring-test ×1
telegram ×1
telegram-bot ×1
tensorflow ×1
transactions ×1