小编bra*_*orm的帖子

如何为Spring Boot应用程序的Gradle构建设置活动配置文件?

这是我的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)

spring-mvc spring-test gradle spring-boot

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

Netty 代理服务器抛出 NotSslRecordException 异常

我正在将本地 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)

当我点击我的本地主机时,它应该代理到后端。我得到以下异常。但是,如果关闭 …

ssl netty

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

Spring Boot jar中的FileNotFoundException但文件存在

文件明显位于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)

java maven spring-boot

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

使用关键字"this"的javascript函数和对象不起作用

我的问题是关于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'不起作用? …

javascript function object this

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

如何在Java中的泛型(Erasure)中检索类型信息?

通过使用泛型,我们在编译期间检测任何可能的.例如,

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是一个原始类型,选择退出泛型类型系统.

我明白上述陈述的含义.一些澄清将有所帮助

java generics wildcard

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

Java中的静态和非静态vs泛型和通配符

考虑以下示例

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 …

java generics static wildcard

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

在python新样式对象中使用__setattr__时的最大递归深度?

我有以下代码,其中包含一个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)

python class object setattr getattr

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

如何手动读取java字节码仅用于理解目的?

我正在阅读这篇关于如何将某些代码转换为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)

java bytecode .class-file

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

当**kwargs给出时,如何在python中使*args可选?

我有这个代码:

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 …

python variadic-functions keyword-argument

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

git fetch和git fetch origin master之间的差异

正在进行获取/合并,并想知道做之间是否有任何区别

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?他们不一样吗?

git git-merge git-fetch

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