您的位置:首页 > 健康 > 美食 > Spring的纯注解配置

Spring的纯注解配置

2024/10/6 20:33:29 来源:https://blog.csdn.net/qq_63242968/article/details/139935791  浏览:    关键词:Spring的纯注解配置

1.JDBC配置:

jdbc配置:

<context:property-placeholder location="classpath:db.properties">
</context:property-placeholder>
<!--数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="driverClassName" value="${jdbc.driver}" /><property name="maxActive" value="10" /><property name="minIdle" value="5" />
</bean>

jdbc的纯注解配置:

JdbcConfig:

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;@PropertySource("classpath:db.properties")
public class JdbcConfig {@Value("${jdbc.driver}")private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String userName;@Value("${jdbc.password}")private String password;@Bean("dataSource")public DataSource getDatasource() {DruidDataSource ds = new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}
}

2.mybatis配置

mybatis配置:

 <!--sqlSession工厂--><bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="typeAliasesPackage" value="com.by.pojo"></property></bean><!--配置MapperScan扫描mapper接口,并把生成的代理类交给spring去管理--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.by.mapper"></property><property name="sqlSessionFactoryBeanName" value="sessionFactoryBean"></property></bean>

mybatis的纯注解配置:

MybatisConfig:


import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;public class MyBatisConfig {@Beanpublic SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource){SqlSessionFactoryBean ssfb=new SqlSessionFactoryBean();ssfb.setDataSource(dataSource);ssfb.setTypeAliasesPackage("com.by.pojo");return ssfb;}@Beanpublic MapperScannerConfigurer getMapperScannerConfigurer(){MapperScannerConfigurer msc=new MapperScannerConfigurer();msc.setBasePackage("com.by.mapper");return msc;}
}

3.transactional配置

transactional配置:

  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><!-- 开启spring对注解事务的支持 --><tx:annotation-driven transaction-manager="transactionManager"/>

transactional的纯注解配置:

TxConfig:

import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;public class TxConfig {@Beanpublic PlatformTransactionManager transactionManager(DataSource dataSource){DataSourceTransactionManager ds = new DataSourceTransactionManager();ds.setDataSource(dataSource);return ds;}
}

4.service配置

service配置:

  <!--扫描service--><context:component-scan base-package="com.by.service"></context:component-scan>

service的纯注0解配置:

ServiceConfig:

import org.springframework.context.annotation.ComponentScan;@ComponentScan("com.by.service")   //等同<context:component-scan base-package="com.by"/>`
public class ServiceConfig {}

5.springmvc配置

springmvc配置:

<!--配置springmvc要扫描的包--><context:component-scan base-package="com.by.controller,com.by.exception"></context:component-scan><!--开启注解驱动:配置handlerMapping和handlerAdapter--><mvc:annotation-driven conversion-service="cs"></mvc:annotation-driven><!--配置日期转换器--><bean id="cs" class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters"><set><bean class="com.by.converter.MyDateConverter"></bean></set></property></bean><!--配置视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"></property><property name="suffix" value=".jsp"></property></bean><!--配置文件上传解析器--><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="5242880" /><property name="defaultEncoding" value="UTF-8" /></bean><!--资源映射器:直接放行无须dispatcherServlet去处理--><mvc:resources location="/head/" mapping="/head/**"/><!--配置拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/account/**"/><mvc:exclude-mapping path="/account/login"></mvc:exclude-mapping><bean class="com.by.interceptor.LoginInterceptor"></bean></mvc:interceptor></mvc:interceptors>

springmvcl的纯注解配置:

SpringMVCConfig:

import com.by.converter.MyDateConverter;
import com.by.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configuration
//等同于<context:component-scan base-package="com.by.controller>
@ComponentScan("com.by.controller")
//等同于<mvc:annotation-driven></mvc:annotation-driven>
@EnableWebMvc
public class SpringMVCConfig implements WebMvcConfigurer {@Beanpublic InternalResourceViewResolver internalResourceViewResolver(){InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();viewResolver.setPrefix("/WEB-INF/pages/");viewResolver.setSuffix(".jsp");return viewResolver;}@Beanpublic CommonsMultipartResolver commonsMultipartResolver(){CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();multipartResolver.setMaxUploadSize(5242880);multipartResolver.setDefaultEncoding("UTF-8");return multipartResolver;}//配置日期转换器@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverter(new DateConverter());}//配置拦截器@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/**");}//配置静态资源的访问路径和位置@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/head/**").addResourceLocations("/head/");}
}

6.servlet配置

servlet配置:

<!--配置监听器:监听tomcat启动,加载spring配置文件-->
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener><!--前端控制器-->
<servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern>
</servlet-mapping>
<!--过滤器-->
<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param>
</filter>
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

servlet的纯注解配置:

WebConfig:

import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;import javax.servlet.Filter;/*** 当类扩展了AbstractAnnotationConfigDispatcherServletlnitializer并将其部署到 Servlet容器时,* 容器会自动发现它,并用它来配置Servlet环境*/
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {//设置Spring对应的配置类@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}//设置SpringMVC对应的配置类,加载springmvc.xml@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMVCConfig.class};}//设置dispatchServet匹配的url@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}//配置过滤器,处理post请求中文乱码过滤器@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter = new CharacterEncodingFilter();filter.setEncoding("utf-8");return new Filter[]{filter};}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com