我正在SpringBoot中创建这个REST API。我正在使用Spring-Data-JPA将名为Site的对象与MySql数据库进行映射。
在控制器中,我设置了RequestMapping注释,以从数据库返回Site对象的列表。控制器中的这个方法正在从服务bean调用另一个方法(getItinerary)。我已经将服务的范围设置为“Prototype”(最初设置为默认值为Singleton)。
问题是,每次点击链接(localhost:8080/GetItinerary),返回的Json都会重新填充列表和先前返回的数据。我想返回新的网站列表,每次我击中链接。
下面是我的代码:
package...
import...
@Service
@Scope("prototype")
public class AlternateTravelPlan {
@Autowired
TravelPlanRepo travelPlanRepo;
ArrayList<Site> siteList = new ArrayList<>;
public List<Site> getItinerary() {
//Enhance For Loop to fetch Site List from Database
for (Site site : travelPlanRepo.findAll()) {
siteList.add(site);
}
return siteList;
}
}
package...
import...
import java.util.List;
@Repository
public interface TravelPlanRepo extends JpaRepository<Site, Integer>{
}
import....
@RestController
public class ItineraryController{
@Autowired
AlternateTravelPlan alternateTravelPlan;
@Autowired
TravelPlanRepo travelPlanRepo;
@RequestMapping("/getItinerary")
public List<Site> getItinerary(){
return alternateTravelPlan.getItinerary();
}
}
我有另一个名为Site的POJO,它与数据库映射在一起。我不放这个类的代码,因为它在这个例子中是不相关的
您的问题是您的siteList变量具有全局作用域,因此每次调用getItinerary()时,它都在向它已经拥有的集合中添加新项。您应该使siteList成为一个在getItinerary方法中局部作用域的变量,每次调用该方法时清除它,或者每次调用该方法时创建一个新实例。例如:
package...
import...
@Service
@Scope("prototype")
public class AlternateTravelPlan {
private TravelPlanRepo travelPlanRepo;
//By autowiring constructors we avoid NPEs...
@Autowired
public AlternativeTravelPlan(TravelPlanRepo travelPlanRepo){
this.travelPlanRepo = travelPlanRepo;
}
public List<Site> getItinerary() {
List siteList = new ArrayList();
//Enhance For Loop to fetch Site List from Database
for (Site site : travelPlanRepo.findAll()) {
siteList.add(site);
}
return siteList;
}
}
我正在制作一个小应用程序,我可以使用spring-boot保存用户详细信息。我创建了实体及其相应的存储库。当我发出帖子请求以添加用户的用户对象的id时,该id在保存到数据时为空base.Thisid在MySQL中自动生成(自动增量)。从POST请求中,我得到3个字段,即用户名、电子邮件、密码。用户类包含字段id、用户名、电子邮件、密码。我添加了注释 作为 id 字段。构造函数是 我的用户服务类 我
用简单的话来说,我想发送这个数据到服务器,使用Volley Post Request。 它有一个整数和一个字符串,我得到的响应是Jsonarray 我尝试过以下方法,但都不管用 > 因为它是json数组请求,我不能在参数中发送数据,因为第三个参数只需要JsonArray,我必须发送JsonObject,所以保持为null 我不能把它放在中,因为值的1是整数,并且它只接受字符串 getparams(
我正在尝试在我的上测试我的。该控制器如下所示: 然而,当我在add方法中进行调试时发出post请求并查看boo对象时,字段都是空的。 请求正文: 请求标头设置为 Boo类: @data注释来自lombok,它为该类生成公共getter和setter等。
基本上,我们希望每一个请求都重新加载用户的权限,因为用户的权限可能会在不同的web请求之间发生变化。 例如,一个用户登录并随后被授予新的权限(并通过电子邮件通知他们拥有新的权限),我知道该用户实际获得新权限的唯一方法是注销,然后再次登录。如果可能的话,我会尽量避免。 欢迎任何友好的建议。
问题内容: 我一直在寻找一种方法,可以在每个请求时重新加载我们的Spring Security UserDetails对象,并且无法在任何地方找到示例。 有人知道该怎么做吗? 基本上,我们希望为每个请求重新加载用户权限,因为该用户权限可能会从Web请求更改为Web请求。 例如,一个已登录并随后被授予新权限的用户(并通过电子邮件被通知他们具有新权限),我知道该用户实际获得该新权限的唯一方法是先注销然
问题内容: 我使用Json.Net这样填充一个类: 上面的结果JSON字符串填充了我的类中的几个属性。稍后我有一个新的JSON字符串,并希望使用其余属性填充相同的类。是否可以使用JSON.NET或方法?我基本上想在上面的代码行中添加/添加到我填充的帐户对象中。 我的课: 问题答案: 是的,您可以使用第二个JSON字符串来填充现有对象的属性。 这是一个例子: 输出: 小提琴:https : //do