Spring
创建spring项目:
新建maven项目:修改groupId,创建,pom.xml添加,alt+insert搜索spring-context,然后在项目resource目录下右键单击,新建xml configuration file选择spring config,没有的话就刷新项目,命名这个文件为applicationContext。
在main的java包下新建一个org.javaboy.ioc.model包,在包里创建User类。添加属性,生成get和set方法。
在applicationContext.xml下添加bean。
注入属性
<bean class="org.javaboy.ioc.model.User" id="user">
//对于无参构造
//<bean>下的property注入值
<property name="studentId" value="1001"/>
</bean>
//对于有参构造,通过constructor-arg初始构造值
<bean class="org.javaboy.ioc.model.User" id="user">
<constructor-arg name="id" value="1"/>
</bean>
//通过命名空间注入,很少用
<bean class="org.javaboy.ioc.model.User" id="user" p:id="3"></bean>
maven添加okhttp依赖
okhttp注入
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pgRW0H4r-1634050962742)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210928234203238.png)]
复杂属性注入
对于一个cat类,在user类添加了成员private Cat cat;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mFrgIHod-1634050962744)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210928234520690.png)]
对于
private Cat[] cats;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lpOmbke8-1634050962744)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210928234938146.png)]
对于:
private List<String> favorites;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jNtOmbL0-1634050962745)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210928235038551.png)]
对于map成员:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-azX9GDQi-1634050962746)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210928235153970.png)]
自动扫描注入
结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6mndPph-1634050962746)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210928200637577.png)]
使用
新建一个main类,psvm。
ClassPathXmlApplicationContext默认在classpath加载,maven是resource目录。
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//或者ApplicationContext iocContainer =
// new ClassPathXmlApplicationContext("helloworld.xml");
//调用
User user = (User) ctx.getBean("user");//" "里内容和id一致。
//或者User user = ctx.getBean("user",User.class);
//User user = ctx.getBean(User.class);
//.castvar快速强制转换类型,.var补全
er.class);
//User user = ctx.getBean(User.class);
//.castvar快速强制转换类型,.var补全