这是我的spring-boot应用程序的DbConfig。
@Configuration
@EnableTransactionManagement
public class DBConfig
{
@Bean
public LocalSessionFactoryBean sessionFactory()
{
....
}
@Bean
public DataSource aaDataSource()
{
.....
}
public PlatformTransactionManager transactionManager()
{
....
}
private Properties hibernateProperties()
{
....
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的考试课
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
public class ApplicationTests {
@Test
public void contextLoads() {
}
}
Run Code Online (Sandbox Code Playgroud)
它是一个摇篮项目。当我在gradlew clean build本地运行时,由于我的application.properties中的连接设置与我的sql连接匹配,因此构建成功。
但是,当我在我们的qa环境(数据库为qa one)中从jenkins box运行时,构建失败并出现以下异常。
java.lang.IllegalStateException: Failed to load ApplicationContext
....
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: …Run Code Online (Sandbox Code Playgroud) 我正在将本地 netty 服务器连接到远程 https 服务器以进行代理请求。
public class CustomInitializer extends ChannelInitializer<SocketChannel> {
@Autowired(required = false)
private SslContext sslContext;
@Override
public void initChannel(SocketChannel ch) {
ChannelPipeline p = ch.pipeline();
if (sslContext != null) {
p.addLast(sslContext.newHandler(ch.alloc()));
}
p.addLast(new LoggingHandler(LogLevel.INFO));
p.addLast(new HttpClientCodec());
p.addLast(new HttpObjectAggregator(8*1024, true));
p.addLast(new MyCustomHandler());
}
}
Run Code Online (Sandbox Code Playgroud)
这是我创建 ssLcontext bean 的方法
@Bean
public SslContext sslContext(@Value("${tcp.ssl}") boolean ssl) throws SSLException, CertificateException {
SslContext sslContext = null;
if (ssl) {
SelfSignedCertificate ssc = new SelfSignedCertificate();
sslContext = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
}
return sslContext;
}
Run Code Online (Sandbox Code Playgroud)
当我点击我的本地主机时,它应该代理到后端。我得到以下异常。但是,如果关闭 …
文件明显位于jar中时,我正在获取FileNotFoundException。为什么会这样呢?
java.io.FileNotFoundException: file:/Users/serviceuser/project/coolApp/target/coolApp-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/ssl_certs/mysslstore.jks (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method) ~[na:na]
at java.base/java.io.FileInputStream.open(FileInputStream.java:219) ~[na:na]
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157) ~[na:na]
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112) ~[na:na]
Run Code Online (Sandbox Code Playgroud)
但是,我看到文件打包在jar中。
jar -tf coolApp-1.0-SNAPSHOT.jar | grep ssl
编辑 我加载文件如下
new FileInputStream(CoolApp.class.getClassLoader().getResource("ssl_certs/mysslstore.jks").getFile())
Run Code Online (Sandbox Code Playgroud) 我的问题是关于javascript中的函数和对象.我有三个问题源于彼此.在下面的例子中,我尝试在测试中访问'a'的值,但是我得到了未定义.但我创建了一个新的测试对象,然后我可以访问'a'值并更改它.
//create a function called test
var test=function() {
this.a=2
this.b=3 };
test.a//undefined
//create a object called test1 using 'new'
test1 = new test();
test1.a//2
//change the value of a in test1
test1.a=4
test1 //Object { a=4, b=3}
Run Code Online (Sandbox Code Playgroud)
在试图找到为什么会发生这种情况时,我遇到了这个javascript函数是对象吗?另外一个问题突然出现了.该SO问题的公认解决方案如下
var addn = function func(a) {
return func.n + a;
};
addn['n'] = 3;
addn(3);
Run Code Online (Sandbox Code Playgroud)
我将'func.n'更改为'this',它不再有效
var addn=function func(a) {
return this.n+a;
};
addn['n']=3;
addn(3); //NaN
Run Code Online (Sandbox Code Playgroud)
用'this'制作匿名函数也没有用
//anonymous function
var addn=function(a) {
return this.n+a;
};
addn['n']=3;
addn(3); //NaN
Run Code Online (Sandbox Code Playgroud)
为什么使用'this'不起作用? …
通过使用泛型,我们在编译期间检测任何可能的.例如,
List<String> list = new ArrayList<String>();
//list.add(new Integer(45)); This will cause compilation error.
list.add("car");
list.add("bus");
list.add("bike");
String vehicle = list.get(0); //compiler-generated cast
Run Code Online (Sandbox Code Playgroud)
当我们在Java 1.5之前使用原始类型而不是泛型时,它需要显式转换.例如,
List list2 = new ArrayList();
list.add("car");
list.add("bus");
list.add("bike");
String vehicle = (String)list.get(0); //explicit casting is necessary
Run Code Online (Sandbox Code Playgroud)
但是对于泛型,会发生类型擦除.这是类型信息在运行时丢失.if,就是这样,JVM如何知道它在运行时检索的对象类型,无论是字符串对象还是person对象(上面编译器生成的转换).但这对泛型有效,这可能会导致运行时错误.
List<Object> test = new ArrayList<Object>();
test.add("hello");
test.add(new Integer(34));
Run Code Online (Sandbox Code Playgroud)
最后,Joshua Bloch在第115页(第23项,有效的java)中提到了Set<Object>参数化类型,它
是一个可以包含任何类型对象的集合,
Set<?>是一个通配符类型,表示一个只能包含某些未知类型的对象的集合,并且Set是一个原始类型,选择退出泛型类型系统.
我明白上述陈述的含义.一些澄清将有所帮助
考虑以下示例
class test<E>{
public int getNum(int i){
return i;
}
public E getNum1(E i){
return i;
}
public static <E> E getNum(E i){
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
第一种方法声明:返回类型是已知的
第二种方法声明:返回类型是一些未知的
第三种方法声明:返回类型是一些未知的+静态
问题:当静态方法用于泛型时,<E>必须指定类型参数.它为什么会这样?或者类型参数究竟是什么意思,它的目的是什么?当方法是非静态的时我们没有类型参数,虽然在这种情况下我们<E>在类声明中有如public class <E> {...}
在外卡上考虑这一点
//This does not compile, how to make it correct
public static getIndex(List<?>, int index){
return list.get(index);
}
public static <E> E getIndex1(List<E> list, int index){
return list.get(index);
}
Run Code Online (Sandbox Code Playgroud)
同样,第一种方法不能编译.我不知道如何使用无界通配符为返回类型进行编译
上面两个方法声明有什么区别?
通配符?表示任何类型,E表示某种未知类型.
这any type是怎么回事some …
我有以下代码,其中包含一个person类和一个委托给person类的Manager类.我正在使用new style object(派生自object)并运行python 2.7.我认为最大的递归深度是我无法理解的.我知道当使用setattr时会发生问题(当我在经理类中注释掉它时,我发现它工作正常).为什么会发生这种递归以及如何避免它.
class Person(object):
def __init__(self,name,job=None, pay=0):
self.name=name
self.job=job
self.pay=pay
def lastName(self):
return self.name.split()[-1]
def giveraise(self,percent):
self.pay=int(self.pay*(1+percent))
def __str__(self):
return '[Person: %s, %s]' %(self.name, self.pay)
class Manager(object):
def __init__(self,name,pay):
self.person=Person(name,'mgr',pay)
def giveraise(self, percent, bonus=0.10):
self.person.giveraise(percent+bonus)
def __getattr__(self,attr):
print "calling getattr"
return getattr(self.person, attr)
def __setattr__(self,attr, value):
print "calling setattr"
self.person__dict__["attr"]=value
def __str__(self):
return str(self.person)
if __name__=="__main__":
sue = Person("sue Jones","dev",10000)
sue.giveraise(0.10)
print sue
print sue.lastName()
print "- -"*25
tom = Manager("Tom mandy", …Run Code Online (Sandbox Code Playgroud) 我正在阅读这篇关于如何将某些代码转换为Java bytecode. 我遇到过这个例子:
Consider the following Java code:
outer:
for (int i = 2; i < 1000; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0)
continue outer;
}
System.out.println (i);
}
A Java compiler might translate the Java code above into byte code as follows,
assuming the above was put in a method:
0: iconst_2
1: istore_1
2: iload_1
3: sipush 1000
6: if_icmpge 44
9: …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
class Test(object):
def f1(self,*args,**kwargs):
print args
print kwargs
self.f2(*args,**kwargs)
def f2(self,*args,**kwargs):
print "calling f2"
print "args= ",args
print "kwargs= ",kwargs
t = Test()
args = [1,2,3]
kwargs= {'a':1,'b':2}
t.f1(args,kwargs)
#second call
t.f1(kwargs)
Run Code Online (Sandbox Code Playgroud)
它打印出来
([1, 2, 3], {'a': 1, 'b': 2})
{}
calling f2
args= ([1, 2, 3], {'a': 1, 'b': 2})
kwargs= {}
({'a': 1, 'b': 2},)
{}
calling f2
args= ({'a': 1, 'b': 2},)
kwargs= {}
Run Code Online (Sandbox Code Playgroud)
我想*args在构造中选择.那就是如果我通过dict,就像args上面第二次调用一样.我不要那个.我基本上想要这个结构:
f1(*args,**kwargs)
-如果*args存在,则处理*args …
我正在进行获取/合并,并想知道做之间是否有任何区别
git fetch
Run Code Online (Sandbox Code Playgroud)
和
git fetch origin master
Run Code Online (Sandbox Code Playgroud)
我remote repository在GitHub上没有任何其他分支和原点.
当我做:
git fetch origin master
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:XXXXXXXXXXXXXXX
* branch master -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
只是:
git fetch
From github.com:XXXXXXXXXXXXXXX
531d466..aaf6df0 master -> origin/master
Run Code Online (Sandbox Code Playgroud)
请注意,主人指向不同的东西; 在一个案例FETCH_HEAD和其他情况下,origin/master?他们不一样吗?
java ×4
generics ×2
object ×2
python ×2
spring-boot ×2
wildcard ×2
.class-file ×1
bytecode ×1
class ×1
function ×1
getattr ×1
git ×1
git-fetch ×1
git-merge ×1
gradle ×1
javascript ×1
maven ×1
netty ×1
setattr ×1
spring-mvc ×1
spring-test ×1
ssl ×1
static ×1
this ×1