相关疑难解决方法(0)

何时使用Spring JPA(Hibernate)实体管理器将连接返回到连接池?

在我的java进程中,我使用以下spring配置连接到MySql:

@Configuration
@EnableTransactionManagement
@PropertySources({ @PropertySource("classpath:/myProperties1.properties"), @PropertySource("classpath:/myProperties2.properties") })
public class MyConfiguration {

    @Autowired
    protected Environment env;

    /**
     * @return EntityManagerFactory for use with Hibernate JPA provider
     */
    @Bean(destroyMethod = "destroy")
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
    em.setDataSource(dataSource());
    em.setJpaVendorAdapter(jpaVendorAdapter());
    em.setPersistenceUnitManager(persistenceUnitManager());

    return em;
    }

    /**
     * 
     * @return jpaVendorAdapter that works in conjunction with the
     *         persistence.xml
     */
    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    vendorAdapter.setDatabase(Database.valueOf(env.getProperty("jpa.database")));
    vendorAdapter.setDatabasePlatform(env.getProperty("jpa.dialect"));
    vendorAdapter.setGenerateDdl(env.getProperty("jpa.generateDdl", Boolean.class, false));
    vendorAdapter.setShowSql(env.getProperty("jpa.showSql", Boolean.class, false));

    return vendorAdapter;
    }

    @Bean …
Run Code Online (Sandbox Code Playgroud)

java mysql spring hibernate jpa

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

Spring-Boot:同时处理多个请求

我正在使用Spring Boot来构建RESTful Web服务.我的IDE是Eclipse Oxygen.

我送在HTTP GET请求每2秒通过Chrome浏览器,但它们引发一个接一个.每个请求都将等待上一个请求完成.

这是我的控制器代码:

@RestController
@RequestMapping("/dummy")
public class DummyController {
    @RequestMapping(method = RequestMethod.GET)
    public ResponseEntity<Map<String, String>> dummytsp(@RequestParam(value="msg", defaultValue="Hello") String msg) {
        System.out.println("" + new Date() + ": ThreadId " + Thread.currentThread().getId());

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Map<String, String> response = new HashMap<>();
        response.put("message", msg);
        return new ResponseEntity<>(response, HttpStatus.OK);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的控制台输出是:

Thu Sep 14 11:31:15 EDT 2017: …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

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

Spring Boot 是否创建 N 个线程来处理 N 个 API 请求?

我正在使用 Spring Boot 2.5 编写 HTTP API 服务器。我对 Spring Boot 如何处理多个 HTTP 请求有点困惑?

假设 Spring Boot 应用程序一次处理 N 个请求。它是否为 Spring Boot 应用程序创建 N 个线程?

java spring-boot

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

如何在Spring Boot中安装线程安全控制器

我应该如何创建一个线程安全的控制器?

根据最佳实践,控制器为单例。

考虑下面的代码,其中我通过自动连接的服务对象存储用户数据,这使我的代码保持状态。我将如何使以下代码线程安全。

@RestController
class ApiController {

    @Autowired
    IDbService< User > iDBService;

    @RequestMapping(value = "/api/adduser", method = RequestMethod.POST)
    public ResponseEntity<User> createUser(@RequestBody User user){

        User savedUser=iDBService.create(user);

        return new ResponseEntity<User>(savedUser, HttpStatus.CREATED);
    }
Run Code Online (Sandbox Code Playgroud)

这是我的服务实施。我在服务中共享了变量

public class IDbServiceImpl<T> implements IDBService<T>{

@Autowired
GenericRepository<T, Serializable> genericRepository;

@Override
public T create(T object) {
    return  genericRepository.save(object);
}
Run Code Online (Sandbox Code Playgroud)

}

java rest spring multithreading spring-boot

3
推荐指数
2
解决办法
7176
查看次数

标签 统计

java ×4

spring ×3

spring-boot ×3

hibernate ×1

jpa ×1

multithreading ×1

mysql ×1

rest ×1