小编Nes*_*oli的帖子

Mybatis Spring多个数据库Java配置

我正在使用Spring和Mybatis并且我有两个数据库,第一个数据库的配置相对容易,但我无法使用Spring和事务处理第二个数据库,这是我的代码

@Configuration
@ComponentScan(basePackages = {"hernandez.service", "hernandez.dao"})
@EnableTransactionManagement
@MapperScan(basePackages="hernandez.mapper" ) 
@Import(DbConfig2.class)
public class AppConfig {

@Bean(name = "dataSource")
public DataSource dataSource() {
    DriverManagerDataSource ds = new DriverManagerDataSource("com.mysql.jdbc.Driver",
            "jdbc:mysql://localhost:3306/northwind", "root", "");
    return ds;
}

@Bean
public SqlSessionFactoryBean sqlSessionFactory() {
    SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
    factoryBean.setDataSource(dataSource()); 
    return factoryBean;
}

@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager() {
    return new DataSourceTransactionManager(dataSource());
}
}

@Configuration
@MapperScan("loli.mapper" ) 
public class DbConfig2 {
@Bean(name = "dataSource_2")
public DataSource dataSource2() {
    DriverManagerDataSource ds = new DriverManagerDataSource("com.mysql.jdbc.Driver",
            "jdbc:mysql://localhost:3306/dmsolut_dmsms", "root", ""); …
Run Code Online (Sandbox Code Playgroud)

java spring mybatis

17
推荐指数
2
解决办法
4万
查看次数

在Lambda java 8中改变实例或本地对象变量

我知道出于并发原因,我无法在Java 8中更新lambda中局部变量的值.所以这是非法的:

double d = 0;
orders.forEach( (o) -> {
     d+= o.getTotal(); 
});
Run Code Online (Sandbox Code Playgroud)

但是,如何更新实例变量或更改本地对象的状态?例如,Swing应用程序我有一个按钮和一个声明为实例变量的标签,当我点击按钮时我想要隐藏标签

 jButton1.addActionListener((  e) -> {
      jLabel.setVisible(false);
 });
Run Code Online (Sandbox Code Playgroud)

我没有编译器错误并且工作正常,但是...改变lambda中对象的状态是正确的吗?我将来会遇到并发问题还是坏事?

这是另一个例子.想象一下,下面的代码是在一个servlet的方法doGet中我会在这里遇到一些问题吗?如果答案是肯定的:为什么?

String key = request.getParameter("key");

Map<String, String> resultMap = new HashMap<>();  

Map<String, String> map = new HashMap<>();
//Load map

map.forEach((k, v) -> {
    if (k.equals(key)) {
        resultMap.put(k, v);
    }
});
 response.getWriter().print(resultMap); 
Run Code Online (Sandbox Code Playgroud)

我想知道的是:什么时候改变lambda中对象实例的状态是正确的?

java lambda java-8

17
推荐指数
2
解决办法
2万
查看次数

为什么我的Java堆有这么多char []

我在Tomcat中有一个Web应用程序,我在那里做很多String操作(substring,indexof,trimming等).我用jmap做了一个堆转储,然后用VisualVM加载它,我意识到我的堆内存使用量的近50%是用char [],为什么char []正在占用内存?我应该关注吗?它与字符串池有关吗?在此输入图像描述

java performance tomcat memory-leaks

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

使用新标准javax.json将Pojos序列化为JSON

我喜欢在Java中使用JSON序列化标准的想法,javax.json是向前迈出的一大步,你可以像这样做一个对象图:

JsonObject jsonObject3 =
Json.createObjectBuilder()
.add("name", "Ersin")
.add("surname", "Çetinkaya")
.add("age", 25)
.add("address",
      Json.createObjectBuilder()
          .add("city", "Bursa")
          .add("country", "Türkiye")
          .add("zipCode", "33444"))
.add("phones",
              Json.createArrayBuilder()
                  .add("234234242")
                  .add("345345354"))
.build();    
Run Code Online (Sandbox Code Playgroud)

就是这样,但是如何将pojo或简单的Java对象(如Map)直接序列化为JSON?就像我在Gson中所做的那样:

Person person = new Person();
String jsonStr = new Gson().toJson(person);
Run Code Online (Sandbox Code Playgroud)

如何使用新标准API执行此操作?

java json java-ee-7

7
推荐指数
2
解决办法
4794
查看次数

在Tomcat 7中运行Java EE 7 WebSockets

Java EE 7已经淘汰,我喜欢的功能之一是标准Websockets.目前我在Tomcat 7工作,有没有办法在我的Tomcat 7中集成Java EE 7 Websockets?我在Tyrus Websocket的文档中搜索它没有成功

更新:Tomcat 7.0.47附带Websocket支持,是的宝贝!

java websocket tomcat7 java-ee-7

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

在TomEE中使用context.xml中的JDBC数据源

TomEE是一个很棒的项目,它结合了Tomcat的轻量级体验和Java EE功能.我在context.xml中声明了许多JDBC数据源,但是当我想通过JNDI使用该数据源时,我得到了一个异常.那么我如何才能在TomEE中的context.xml中声明JDBC数据源

我的数据源在context.xml中声明

 <Resource auth="Container" 
        name="local_jdbc_db"  
        type="javax.sql.DataSource" 
        driverClassName="com.mysql.jdbc.Driver"  
        url="jdbc:mysql://localhost:3306/mydb" 
        username="user" 
        password="pass"      /> 
Run Code Online (Sandbox Code Playgroud)

从JNDI获取数据源的代码

Context contextoInicial = new InitialContext();
Context contexto = (Context) contextoInicial.lookup("java:comp/env");
DataSource ds= (DataSource) contexto.lookup("local_jdbc_db");
Run Code Online (Sandbox Code Playgroud)

java tomcat jdbc tomee

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

Android 7/8中的Java?

Android是一款出色的移动平台,它使用Java(有充分理由)是一种非常流行的编程语言.但Java语言正在发展,向前发展,具有小语言改进的版本7已经有几年了,第二年它带来了等待lambda的版本8.

我的问题是:Android会运行Java 7或8还是采用它们的一些构造?

更新:仅适用于非信徒:在Android Kitkat 4.4中,我们可以使用Java 7的好东西:ARM,切换字符串,钻石等.是啊!我希望获得lambdas和Java 8功能不会花费这么长时间

java android

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