如何扫描这个启动类包外的包? @ComponentScan(basePackages = {“com”}) com就是我们要扫描的包
如果一个接口有两个实现类在使用@Autowired注入的时候改怎么做? 要注入的成员变量名跟你要的beanName一样. 1.@Autowired Animal cat;就会注入Cat了不会注入Dog. 2.如果有Cat和Dog,优先注入Cat,就在Cat加@Primary @Primary public class Cat implement Animal {} 这个在配置双数据源的时候经常用到这个技巧。 3.用@Qualifier @Autowired @Qualifier(“dog”)//即便Cat标注了@primary,这里也会注入dog Animal animal;
一些第三方jar的类没有加@Component注解,但我们也要让他进入spring管理怎么弄? 利用自动装配原理 @Config public class Config{ @Bean public Jar jar(){return new Jar();} }这样就能在其他地方注入了。
除了加载application.properties文件,我还要加载其他的地方配置文件改怎么弄? 用 @PropertySource(value = {“classpath:mydiy.properties”})//这样就还能加载这个文件了
老说bean的作用域,那我想用request作用域要怎么用,直接注入就可以了? 加@Scope注解,并且要指定代理模式,否则会报错 @Scope(value=WebApplicationContext.SCOPE_REQUEST,proxyMode = ScopedProxyMode.TARGET_CLASS),可以看到其实是代理类
除了用注解装入Bean,我还想同时用xml定义bean要怎么弄? 在配置类加上 @ImportResource(“classpath:bean-other.xml”)
前端传过来的日期是字符串格式"yyyy-mm-dd”,控制层接受的参数怎么直接转换成Date类,或者穿过来的数字是xxx,xxx这种格式怎么转换成数字? 日期在控制层入参上加@DateTimeFormat(iso=ISO.DATE)注解,或者直接在配置文件加 spring.mvc.date-format=yyyy-mm-dd. 数字用@NumberFormat(pattern="###,###.##")