Spring boot делает для вас многое из коробки.
Настройка DataSource
Прежде всего, это источник данных. К сожалению, C3P0 не поддерживается провайдерами пула соединений (только DBCP, Hikari и Tomcat). Это означает, что вам нужно вручную создать компонент DataSource
, например:
@Bean
@ConfigurationProperties("custom.datasource")
public ComboPooledDataSource dataSource() {
return new ComboPooledDataSource();
}
Если вы добавите этот метод в свой основной класс или в любой другой класс, помеченный @Configuration
, Spring автоматически выберет компонент источника данных и создаст для вас TransactionManager
и SessionFactory
. Это также позволяет управлять транзакциями на основе аннотаций.
Поскольку мы используем @ConfigurationProperties
, все свойства, начинающиеся с custom.datasource.*
, автоматически добавляются в источник данных. Это позволяет вам конфигурировать ваш источник данных из application.properties
. Если у вас еще нет такого файла, создайте его в classpath и добавьте следующие свойства:
custom.datasource.jdbc-url=jdbc:mysql://localhost:3306/rtc_insurance?useSSL=false&characterEncoding=latin1&serverTimezone=UTC
custom.datasource.user=root
custom.datasource.password=root
custom.datasource.initial-pool-size=5
custom.datasource.min-pool-size=5
custom.datasource.max-pool-size=20
custom.datasource.max-idle-time=30000
Заменить DAO на пружинные данные
Следующая часть - DAO. Проект Spring Data пытается сделать все это намного проще. Прежде всего, вам нужно добавить зависимость spring-boot-starter-data-jpa
в ваш проект. Если вы используете Maven, вы можете сделать следующее:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</exclusion>
</exclusions>
</dependency>
Исключение является необязательным, но позволяет исключить пул соединений по умолчанию (который является Hikari), поскольку вы его не используете. После этого вы можете заменить все ваши UserDAO
и UserDAOImpl
на следующие:
public interface UserRepository extends JpaRepository<User, Long> {
}
Создавая интерфейс и расширяясь от JpaRepository
(или CrudRepository
, ...), Spring знает, что он должен создать для вас компонент репозитория с типом User
и идентификатором типа * 1035. * (вы не поделились своей User
сущностью, поэтому, если это не Long
, вы можете изменить общие параметры).
Он также будет включать некоторые методы по умолчанию, такие как findAll()
, findById()
, save()
, delete()
, ..., которые вам больше не нужно писать. Так как вы getUsers()
метод в основном такой же, как операция findAll()
. Это означает, что вам не нужен этот код, и вы можете просто подключить UserRepository
к своему контроллеру и использовать операцию findAll()
.
Сканирование компонентов
В вашей конфигурации XML у вас также есть сканирование компонента:
<context:component-scan base-package="com.rtc_insurance" />
В этом больше нет необходимости, поскольку Spring boot автоматически сканирует компоненты в том же пакете или любой подпакет основного класса. Если вы хотите добавить дополнительное компонентное сканирование, вы можете сделать это, добавив аннотацию @ComponentScan("com.xyz")
поверх основного класса или любой другой класс, помеченный @Configuration
.
Spring MVC, конфигурация
У вас также есть некоторая конфигурация, связанная с Spring MVC, например:
- MVC-аннотация, управляемая
- Префикс и суффикс распознавателя вида
- Расположение статических ресурсов
Поскольку Spring boot автоматически включал аннотации MVC, вы уже можете поцарапать это. С другой стороны, префикс и суффикс распознавателя представлений можно настроить через application.properties
, настроив следующие свойства:
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp
И наконец, есть статические ресурсы. По умолчанию загрузка Spring автоматически включает ресурсы из нескольких мест, таких как classpath:/static/
и classpath:/public/
, в качестве статических расположений ресурсов.
Это означает, что если вы поместите какой-либо файл в эти папки, он будет автоматически обработан.
После этого весь ваш XML-файл конфигурации bean-компонента устарел и может быть удален.