使用java 代码 配置spring

1 修改 web.xml

<!--使用java配置文件 需要显式的指定上下文配置类, 在使用xml配置方式的时候Spring默认使用ClassPathXmlApplicationContext来加载上下文文件。-->
<context-param>
    <param-name>contextClass</param-name>
    <param-value>
        org.springframework.web.context.support.AnnotationConfigWebApplicationContext
    </param-value>
</context-param>

<!--spring 配置的beans-->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <!--自己定义的配置上下文的java文件-->
    <param-value>com.hjx.demo.appliction.ContextConfig</param-value>
</context-param>


<servlet>
    <servlet-name>dispatcher-servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
        <param-name>contextClass</param-name>
        <param-value>
            org.springframework.web.context.support.AnnotationConfigWebApplicationContext
        </param-value>
    </init-param>

    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>com.hjx.demo.appliction.Application</param-value>
    </init-param>
    
    <!--
        用来指定应用程序加载相应的spring上下文配置 配合@Profile(value = "dev")注解使用,
        如果没有配置的话不需要添加
    -->
    <init-param>
        <param-name>spring.profiles.default</param-name>
        <param-value>dev</param-value>
    </init-param>
    
    <!--加载顺序-->
    <load-on-startup>1</load-on-startup>
</servlet>
<!--指定spring servlet映射的路径-->
<servlet-mapping>
    <servlet-name>dispatcher-servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

2 定义java文件 使用注解

//@Profile(value = "dev")配置上下文环境 通过web.xml中来选择相应的环境
//在junit中通过@ActiveProfiles(value = {"dev"})注解来激活.使用junit的话必须要添加.
@Profile(value = "dev") 
// 表示这个类是spring的一个配置类。
@Configuration 
// 引入其他的配置文件
@Import(value = DataSourceApplication.class)
 // 表示开启springMVC 的支持
@EnableWebMvc
// 扫描包注解,扫描com.hjx.demo包下的spring注解
@ComponentScan(basePackages = {"com.hjx.demo"}) 
// 继承了WebMvcConfigurationSupport 类。该类中spring已经创建了大部分需要用到的 bean。
public class Application extends WebMvcConfigurationSupport {

    /**
     * @Bean 注解表示这是一个 spring 中的bean,bean的名称默认为该方法的方法名称。bean的class为这个方法的返回值。
     *给bean设置值的时候参照xml文件中的设置方法就行。但是部分bean除外,一些属性没有set方法。
     *可以直接查看该类,了解源代码。
     *
     *下面的连个bean 是设置 ajax 中json视图解析的bean。具体参数设置直接查看了源码。
     */
    @Bean
    public AnnotationMethodHandlerAdapter annotationMethodHandlerAdapter() {
        AnnotationMethodHandlerAdapter handlerAdapter = new AnnotationMethodHandlerAdapter();
        handlerAdapter.setMessageConverters(new HttpMessageConverter[]{jackson2HttpMessageConverter()});
        return handlerAdapter;
    }

    @Bean
    public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter(){
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
        List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
        //设置视图解析的类型和编码格式。
        supportedMediaTypes.add(MediaType.parseMediaType("text/html;charset=UTF-8"));
        supportedMediaTypes.add(MediaType.parseMediaType("text/json;charset=UTF-8"));
        supportedMediaTypes.add(MediaType.parseMediaType("application/json;charset=UTF-8"));
        messageConverter.setSupportedMediaTypes(supportedMediaTypes);
        return messageConverter;
    }
}

测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
    classes = {Application.class, ContextConfig.class}, 
    loader = AnnotationConfigWebContextLoader.class)// 使用java配置spring时,需要指定加载器
@ActiveProfiles(value = {"dev"}) // 用来激活相应环境的spring配置
@WebAppConfiguration //不知道干啥的,反正要加上.
public class JDBCTest {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    public void test() {
        System.out.println("=====================");
    }

    @Test
    public void jdbcTest() {
        System.out.println(jdbcTemplate.hashCode());

        String sql = "select * from tbl_wechat_user";

        jdbcTemplate.query(sql, resultSet -> {
            System.out.print(resultSet.getString(1)+"===");
            System.out.print(resultSet.getString(2)+"===");
            System.out.print(resultSet.getString(3));
            System.out.println();
        });
    }
}

转载于:https://my.oschina.net/u/3399379/blog/871529

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值